Releases: ccamel/erlang-event-sourcing-xp
Releases · ccamel/erlang-event-sourcing-xp
Release list
v2.0.0
2.0.0 (2026-05-09)
⚠ BREAKING CHANGES
- kernel: change event store behavior to return result tuples
- kernel: rename domain to aggregate_type (everywhere)
- kernel: use aggregate_id instead of stream_id
- kernel: rename command key() to target() for clarity
- kernel: refine command, event and snapshot keys
- kernel: route all commands through a singleton aggregate manager
- kernel: remove manager behaviour (used for routing)
- kernel: remove lifecycle management from kernel layer
- kernel: turn the kernel into a plain OTP app
Features
- contract: add contain/2 to the range ADT (0f3eb9e)
- contract: add difference/2 to the range ADT (cadf54a)
- contract: add equal/2 to the range ADT (4a85896)
- contract: add intersection/2 to the range ADT (31fb6c8)
- contract: add lt/2 to the range ADT (439d82d)
- contract: add overlap/2 to the range ADT (5542f1f)
- contract: add projection checkpoint store behavior (61c3bc7)
- core: refine store startup and validation (5ed9e55)
- example: extract interactive bank account example into standalone script (5ea9e33)
- kernel: add projection event log folding (7bb5ce7)
- kernel: add projection runtime (9ee6ddd)
- kernel: handle aggregate process failures in command dispatch (f9c8691)
- kernel: introduce registry mapping aggregate_type to aggregate_module (0e2acc9)
- kernel: make snapshot interval configurable (d4b0f57)
- projection: add managed projection runners (1ccc6ae)
- store_ets: add global event positions (b397992)
- store_file: add File store backend (e16058b)
- store_file: add global event index (19f5d73)
- store_mnesia: add global event positions (0c09f08)
- xp: improve xp (demo) application (32f777d)
- xp: wire projection runtime into demo app (8c829cc)
Bug Fixes
- contract: correct behavior of advance/2 to return empty range when beyond upper bound (4f7f60a)
- contract: correct error tuple for invalid range creation (dff2608)
- file: handle file:write_file error return type (1c6b31e)
- kernel: add (missing) event_type/1 callback to aggregate behavior (97ec156)
- kernel: add warning log for missing registry entry in init/1 (c67b810)
- kernel: align manager dispatch specs with actual return types (95774e9)
- kernel: make checkpoint ets startup race-safe (1c5e5db)
- kernel: preserve event order in aggregate batches (59046e4)
- xp: enforce positive withdraw amounts (813f7da)
Documentation
- kernel: document projection runner failure mode (7e768e4)
- kernel: tighten aggregate process documentation (ff3cea9)
- README: add codecov badge (c1aa4e3)
- README: add pull-based projection runtime and checkpointing details (2dde721)
- README: clarify command payload and aggregate type resolution (19af86b)
- README: describe file store backend (+ cosmetics) (dd9174a)
- README: describe lint workflow (dialyzer, fmt) (9663a18)
- README: document global event folding (fa2f543)
- README: document kernel refactor and supervision tree (fdd21b4)
- README: document managed projections (8cfdf16)
- README: document projection app runtime (6a4de80)
- README: include capabilities for each store (29bfe3c)
- README: refresh feature overview (1eee3a9)
- README: specify event store backend roadmap (e91c279)
Styles
- contract: polish style (14990a8)
- fix line length lint (8ee4e12)
- kernel: make linter happy again (7f509bb)
- kernel: simplify metadata and tags handling (0214388)
Refactors
- apply es_ prefix to all modules (simplify naming) (8ceee1e)
- contract: change fold callback to use interval as first-class parameter (6a020f2)
- contract: rename interval ADT into range (c6c3056)
- core: split store behaviours (a6022c2)
- extract event sourcing contract into dedicated app (33241ee)
- kernel: change event store behavior to return result tuples (8186b17)
- kernel: configure store via OTP application environment (6fb6c45)
- kernel: extract rehydration logic from aggregate init (60c7c70)
- kernel: migrate es_kernel_aggregate_sup t...
v1.1.0
v1.0.0
1.0.0 (2025-04-02)
Features
- core: add core_mgr_aggregate implementation (d901a2f)
- core: add dispatch/1 to aggregate to entirely hide gen_server (f3a39cc)
- core: add ETS event store (8f08219)
- core: add gen_server aggregate behaviour for event-sourced domain logic (59593d3)
- core: add limit option to event retrieval function (cd27ea7)
- core: handle conflicts and enfore atomicity in Mnesia persistence (cfd16de)
- core: improve mnesia storage management (11985ab)
- core: introduce configurable sequence and timestamp options (0598490)
- core: introduce routing behaviour module (090bec2)
- core: log persisted events (00ffe97)
- core: switch to persist_events for event stream batch persistence (6373e32)
- core: use cursor based limit queries for mnesia (af36aa8)
- lib: implement persist_event/3 and retrieve_and_fold_events/4 (bc42558)
- lib: scaffold event_sourcing_core lib (47edf82)
- store: add helper function to easily retrieve events (15c0c73)
Bug Fixes
- core: perform batch insert of events in ETS backend (6314d7c)