You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
Added
[[#148]]: ReplayableEventHandler trait to mark an EventHandler as replayable or not. This does not stick to TransactionalEventHandlers since it is taken for granted that they must always be replayable.
[[#149]]: PgStoreBuilder struct, currently the sole method for constructing a PgStore.
[[#151]]: The EventBus trait is integrated with the PgStore implementation to facilitate the publishing of events
after they have been processed by the handlers.
[[#152]]: MigrationHandler trait to run migrations while building a new PgStore.
[[#155]]: Concrete implementations of the EventBus interface for Apache Kafka and RabbitMQ. These implementations
are available under the rabbit and kafka features.
[[#155]]: Docker compose file for local development and testing.
[[#156]]: The table_name and add_event_handler functions to PgStore.
[[#156]]: Generic Rebuilder trait and concrete PgRebuilder struct facilities to rebuild a single aggregate. These
implementations are available under the rebuilder feature.
[[#157]]: The TransactionalEventHandler now includes a new generic type argument that allow to specify the error
return type.
[[#157]]: The EventStore trait now takes the Aggregate as associated type and now includes a new associated type
that allow to specify the error return type.
[[#157]]: New PgStoreError type as error return type for PgStore.
Changed
[[#148]]: Projector and Policy no longer exists. Replaced with EventHandler and TransactionalEventHandler.
[[#150]]: AggregateManager is no longer a trait; it now lives as a struct.
[[#150]]: The EventStore, PgStore, EventHandler, TransactionalEventHandler and ReplayableEventHandler types,
previously associated with the AggregateManager trait, now have a simplified constraint that they are bound
to the Aggregate trait.
[[#153]]: The save_event function in the PgStore is now accessible only within the crate scope.
[[#156]]: The examples have been refactored as external executables and are no longer part of the cargo workspace.
[[#157]]: The AggregateManager type bound has been changed from Aggregate to an EventStore type.
[[#157]]: The return type error of the inner functions in AggregateManager has been modified from Aggregate::Error
to a new type called AggregateManagerError<E>. This change introduces a clear differentiation between an Aggregate error and an EventStore error.
[[#157]]: The functions in the EventStore, including those in the PgStore, now utilize the new error associated type
as their return type.
[[#161]]: Moved some traits and structs in other packages
The esrs::AggregateManager struct (previously a trait) moved into esrs::manager module.
The esrs::postgres module has been relocated and can now be found under esrs::store::postgres.
The esrs::EventStore, esrs::EventStoreLockGuard, esrs::StoreEvent and esrs::UnlockOnDrop objects moved to esrs::store module.
Removed
[[#153]]: PgStore getters functions transactional_event_handlers, event_handlers and event_buses.