Skip to content
This repository has been archived by the owner on Dec 14, 2023. It is now read-only.

Latest commit

 

History

History
108 lines (80 loc) · 3.96 KB

CHANGELOG.md

File metadata and controls

108 lines (80 loc) · 3.96 KB

Changelog 3.2

Introduces optional event_aggregate_id and event_sequence_number columns to the command_records table. This enables keeping track of events causing commands in workflows.

To add these columns to an existing event store you can use this sql to add them:

Please note these sql statements use the uuid type for aggregate_id.

ALTER TABLE command_records ADD COLUMN event_aggregate_id uuid;
ALTER TABLE command_records ADD COLUMN event_sequence_number integer;
CREATE INDEX CONCURRENTLY index_command_records_on_event ON command_records(event_aggregate_id, event_sequence_number);

Changelog 3.1

The most notable changes are:

  • Added more documentation on https://www.sequent.io
  • Added support for AR 5.2
  • Added rake task to support installation on existing databases

Changelog 3.0

The most notable changes are:

  • Added extensive documentation for Sequent.
  • Addition of more sophisticated way of replaying. See the documentation on how to configure.
  • Dropped support for AR < 5.0
  • Deprecated MigrateEvents as strategy for event migration
  • Renamed Sequent::Core::BaseEventHandler to Sequent::Core::Projector
  • Renamed Sequent::Core::Sessions::ActiveRecordSession to Sequent::Core::Persistors::ActiveRecordPersistor
  • Renamed Sequent::Core::Sessions::ReplayEventsSession to Sequent::Core::Persistors::ReplayOptimzedPostgresPersistor

Changelog 2.0

The most notable changes are:

Addition of the queue-based command and event handling.

To illustrate the difference see example below:

# command c1 results in event e1
on c1 do
  apply e1
end

# workflow: event e1 results in new command c3
on e1 do
  execute_commands(c3)
end

# main
execute_commands(c1, c2)

Prior to version 1.1 the order is as follows:

  • c1
  • c3
  • c2
  • e1

As you can see command c3 is executed before c2 although c2 was scheduled before c3.

As of version 1.1 the order will be:

  • c1
  • c2
  • c3
  • e1

Commands and events are added to the queues as they occur and than handled in that order. If you have never had workflows scheduling new commands in the foreground nothing changes. If you have used workflows in the foreground the order will be different, so ensure your system still behaves correctly.

The Sequent::Core::EventStore::PublishEventError is renamed to Sequent::Core::EventPublisher::PublishEventError

Global sequent config

Another possible breaking change is the way the config is setup. The sequent config now global, so some sequent classes in the config do not take parameters anymore. You will need to change your sequent config, and will have affect on your tests. Please see the docs and the example apps for more information.

Full list of changes:

  • New: Adding TakeSnapshot command to enable fine-grained support for snapshotting aggregates zilverline#92
  • Improvement: Minimize differences between test environment and normal environment zilverline#93
  • Bugfix: Fix query to load multiple aggregates of which one is snapshotted zilverline#94
  • Improvement: Speed up event query zilverline#95
  • New: Added create_records method available to BaseEventHandlers to insert multiple records in one go zilverline#96 zilverline#100
  • New: Added queue-based command and event publishing to ensure commands and events are handled in order they occurred zilverline#97
  • Improvement: Update oj to mimic ActiveSupport version 5. Thanks @respire! zilverline#98
  • Bugfixes: Fix sequent for AR => 5 zilverline#99
  • Improvement: Global sequent config zilverline#101