All Versions
49
Latest Version
Avg Release Cycle
56 days
Latest Release
-

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).
  • v0.17.0 Changes

    July 24, 2018

    ✨ Enhancements

    • Ability to globally override include_execution_result and include_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).

  • v0.16.0 Changes

    • 👌 Support composite command routers (#111).
    • Aggregate state snapshots (#121).
    • 🆕 New error/3 callback for process manager and deprecated error/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 with after_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 from after_command/1 to after_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:

    • 📦 eventstore to v0.14.0
    • commanded_eventstore_adapter to v0.4.0

    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.
  • 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:

    • 📦 eventstore to v0.13.0
    • commanded_eventstore_adapter to v0.3.0

    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:

    • 📦 eventstore to v0.11.0
    • commanded_eventstore_adapter to v0.2.0

    Using Greg's Event Store:

    • commanded_extreme_adapter to v0.3.0

  • v0.13.0 Changes

    ✨ Enhancements

    • Command dispatch optionally returns aggregate version, using include_aggregate_version: true during dispatch.

  • v0.12.0 Changes

    ✨ Enhancements

    • Commanded.Event.Handler and Commanded.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.11.0 Changes

    ✨ Enhancements

    • Shutdown idle aggregate processes (#43).

  • 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.