All Versions
10
Latest Version
Avg Release Cycle
134 days
Latest Release
762 days ago

Changelog History

  • v0.6.2 Changes

    October 03, 2022

    ๐Ÿ”„ Changed

    Library
    • โฌ†๏ธ Upgrade Elixir to 1.12 and Erlang to 23;
    • โšก๏ธ Update package dependencies;
  • v0.6.1 Changes

    February 23, 2021

    ๐Ÿ›  Fixed

    Library
    • ๐Ÿ›  Fix bug in the task mix incident.postgres.init that would generate migration timestamps that were conflicting with each other;

    ๐Ÿ”„ Changed

    Library
    • โšก๏ธ Update readme with missing syntax highlighting;
    • โšก๏ธ Update Github issue templates;
    • โšก๏ธ Update package dependencies;
  • v0.6.0 Changes

    December 09, 2020

    โž• Added

    Library
    • ๐Ÿ– Handle race conditions and concurrent scenarios during command execution;
    • โž• Add EventStoreSupervisor to supervise EventStore adapters and LockManager;
    • โž• Add AggregateLock schema to hold lock data;
    Bank Example Application
    • โž• Add integration tests that exercise concurrency and race conditions;

    ๐Ÿ”„ Changed

    Library
    • ๐Ÿ”„ Change how Incident is configured and added in the application supervision tree;
    • โšก๏ธ Update mix incident.postgres.init to include migration for aggregate_locks table;
    • ๐Ÿ“š Update documentation regarding library configuration and usage;
    • โšก๏ธ Update package dependencies;
    Bank Example Application
    • ๐Ÿ“š Update documentation regarding library configuration and usage;
  • v0.5.1 Changes

    November 03, 2020

    ๐Ÿ”„ Changed

    Library
    • โž• Add id for the in memory event data structure;
    • Sort events by id in the Event Store Postgres and InMemory adapters to ensure proper event ordering;
    • โœ‚ Removed updated_at column from events table in the mix incident.postgres.init task;
    • ๐Ÿ“š Update documentation;
    • โšก๏ธ Update package dependencies;
    Bank Example Application
    • โšก๏ธ Update events migration to reflect changes in the mix incident.postgres.init task;
  • v0.5.0 Changes

    October 15, 2020

    โž• Added

    Library
    • โž• Add get/2 for Projection Store InMemory and Postgres adapters to fetch a projection for a specific aggregate;
    Bank Example Application
    • โž• Add Transfer, TransferCommandhandler, TransferState and TransferEventHandler to demonstrate an example of aggregate root use-case;
    • โž• Add examples of events that can generate specific commands in TransferEventHandler to demonstrate sequence of Event -> Command -> Event use-cases;

    ๐Ÿ”„ Changed

    Library
    • The CommandHandler now returns {:ok, persisted_event} instead of just :ok, allowing event ๐Ÿ– handlers to compose a new command and call the CommandHandler based on the previous event. This allows a series of Event -> Command -> Event to be built;
    • Set Elixir minimum version to 1.8;
    • โšก๏ธ Update package dependencies;
    Bank Example Application
    • Bank.EventHandler was renamed to Bank.BankAccountEventHandler to make it clear that this ๐Ÿ– handler is only for the BankAccount aggregate events as now we have more than one aggregate;
    • Set Elixir minimum version to 1.8;
  • v0.4.1 Changes

    June 18, 2020

    ๐Ÿ”„ Changed

    Library
    • โšก๏ธ Update package dependencies;
  • v0.4.0 Changes

    October 06, 2019

    โž• Added

    Library
    • โž• Add mix incident.postgres.init mix task to set up Postgres as Event Store storage;
    Bank Example Application
    • โž• Add WithdrawMoney command, MoneyWithdrawn event, and business logic;

    ๐Ÿ”„ Changed

    Library
    • โšก๏ธ Update package dependencies;
  • v0.3.0 Changes

    September 14, 2019

    โž• Added

    Library
    • โž• Add Postgres adapter for events;
    • โž• Add Postgres adapter for projections;
    • Set up continuous integration with Circle CI;
    Bank Example Application
    • โž• Add integration tests for InMemoryAdapter;
    • โž• Add integration tests for PostgresAdapter;

    ๐Ÿ”„ Changed

    Library
    • Specify separate event data structures for InMemoryAdapter and PostgresAdapter;
    Bank Example Application
    • 0๏ธโƒฃ Use PostgresAdapter as default;
    • โšก๏ธ Update readme file;
  • v0.2.0 Changes

    July 16, 2019

    โž• Added

    Library
    • Define the Incident.Command behaviour to specify the command interface;
    • Define the Incident.CommandHandler macro for command handlers;
    • Define the Incident.EventHandler behaviour to specify the event handler interface;
    • ๐Ÿ‘‰ Use Ecto.Schema event data structure;
    • ๐Ÿ‘‰ Use Ecto.Schema for command data structure;

    ๐Ÿ”„ Changed

    Library
    • ๐Ÿšš Move event persistency from aggregates to command handlers;
    • Validate commands in the command handlers using command implementation;
  • v0.1.0 Changes

    June 19, 2019
    Library
    • ๐ŸŽ‰ Initial release with base functionality with In Memory adapters;
    • ๐ŸŽ‰ Initial release for the bank example application;