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 (