Changelog History
Page 3
-
v0.17.1 Changes
October 08, 2018โจ Enhancements
- ๐ Support
Phoenix.PubSub
v1.1.0.
๐ Bug fixes
- 0๏ธโฃ Set default aggregate lifespan timeout to
:infinity
(#200).
- ๐ Support
-
v0.17.0 Changes
July 24, 2018โจ Enhancements
- Ability to globally override
include_execution_result
andinclude_aggregate_version
in environment config (#168). - ๐ Handle custom type serialization in snapshot source type (#165).
- ๐ Fix compiler warnings in generated code (routers, event handlers, and process managers).
- โ Add
InMemory.reset!/0
for testing purposes (#175). - ๐จ Process manager
indentity/0
function (#334).
๐ Bug fixes
- ๐ง Ensure process managers can be configured with
:strong
consistency. - ๐ Fix error when subscription process already tracked (#180).
- Ability to globally override
-
v0.16.0 Changes
- ๐ Support composite command routers (#111).
- Aggregate state snapshots (#121).
- ๐ New
error/3
callback for process manager and deprecatederror/4
(#124) - ๐ Router support for identity prefix function.
- Retry command execution on concurrency error (#132).
- Event handler
error/3
callback (#133). - ๐ Support distributed dispatch consistency (#135).
- Defer event handler and process router init until after subscribed (#138).
- Replace aggregate lifespan
after_command/1
callback withafter_event/1
(#139). - ๐ Support process manager routing to multiple instances (#141).
- ๐ Allow a default consistency to be set via the application env (#150).
- Command dispatch consistency using explicit handler names (#161).
๐ฅ Breaking changes
- The
Commanded.Aggregates.AggregateLifespan
behaviour has been changed fromafter_command/1
toafter_event/1
. You will need to update your own lifespan modules to use events instead of commands to shutdown an aggregate process after an inactivity timeout.
โฌ๏ธ Upgrading
โฌ๏ธ Please ensure you upgrade the following event store dependencies.
Using the Elixir EventStore:
Using Greg Young's Event Store:
commanded_extreme_adapter
to v0.5.0
-
v0.15.1 Changes
๐ Bug fixes
- Event handler
child_spec/1
must include config options defined by use macro.
- Event handler
-
v0.15.0 Changes
โจ Enhancements
- ๐จ Process manager command dispatch error handling (#93).
- Event handlers may define an
init/0
callback function to start any related processes. It must return:ok
, otherwise the handler process will be stopped. - Add
include_execution_result
option to command dispatch (#96). - โ Add
Commanded.Aggregate.Multi
(#98) as a way to return multiple events from a command dispatch that require aggregate state to be updated after each event. - Correlation and causation ids (#105).
- ๐ Initial support for running on a cluster of nodes (#80).
๐ Bug fixes
- โ Adding a prefix to the aggregate in the router breaks the strong consistency of command dispatch (#101).
โฌ๏ธ Upgrading
โฌ๏ธ Please ensure you upgrade the following event store dependencies.
Using the Elixir EventStore:
Using Greg's Event Store:
commanded_extreme_adapter
to v0.4.0
-
v0.14.0 Changes
โจ Enhancements
- Dispatch command with
:eventual
or:strong
consistency guarantee (#82). - โ Additional stream prefix per aggregate (#77).
- ๐ Include custom metadata during command dispatch (#61).
- Validate command dispatch registration in router (59).
โฌ๏ธ Upgrading
โฌ๏ธ Please ensure you upgrade the following event store dependencies.
Using the Elixir EventStore:
Using Greg's Event Store:
commanded_extreme_adapter
to v0.3.0
- Dispatch command with
-
v0.13.0 Changes
โจ Enhancements
- Command dispatch optionally returns aggregate version, using
include_aggregate_version: true
during dispatch.
- Command dispatch optionally returns aggregate version, using
-
v0.12.0 Changes
โจ Enhancements
Commanded.Event.Handler
andCommanded.ProcessManagers.ProcessManager
macros to simplify defining, and starting, event handlers and process managers. Note the previous approach to defining and starting may still be used, so this is not a breaking change.
-
v0.10.0 Changes
โจ Enhancements
- Extract event store integration to a behaviour (
Commanded.EventStore
). This defines the contract to be implemented by an event store adapter. It allows additional event store databases to be used with Commanded.
By default, a
GenServer
in-memory event store adapter is used. This should only be used for testing as there is no persistence.The existing PostgreSQL-based eventstore integration has been extracted as a separate package (commanded_eventstore_adapter). There is also a new adapter for Greg Young's Event Store using the Extreme library (commanded_extreme_adapter).
You must install the required event store adapter package and update your environment configuration to specify the
:event_store_adapter
module. See the README for details.
- Extract event store integration to a behaviour (