- Commits with no produced events will not invoke downstream queries.
- Updates per Clippy due to Rust compiler changes.
- Rust minimum version changed to 1.71.0
- Updated dependencies.
- Rust minimum version changed to 1.63.0
- Added the
when_async
andand
methods to the test executor to supportasync
test frameworks and Gherkin testing.
- The primary branch is now set to
main
. - Makes the runtime and TLS library configurable for the SQL based persistence crates.
Not released.
- Changes required for Rust 1.63 clippy additions.
- Dependency updates including moving to sqlx v0.6 in postgres-es and mysql-es crates.
- Added a
QueryReplay
component to assist in replaying events across a query. - Made the
QueryErrorHandler
convenience type public. - Set consistent reads in dynamo-es to reduce optimistic locking errors.
- Add
append_query
method to the framework.
- Modified the aggregate
handle
method to expect a reply ofSelf::Error
. PreviouslyAggregateError
was returned which allowed overloading enum branches other than theUserError
, this is no longer allowed. - Added
Services
type to the aggregate trait. Any external services used should now be configured with the CqrsFramework rather than attached to a command. - The TestFramework now provides the
expect_error
validator that is available if theSelf::Error
implementsPartialEq
. - Removed deprecated
EventEnvelope
methods andUserErrorPayload
struct from use in examples.
- Removed deprecated methods and structs from use in examples.
- Removed the
timestamp
field from the database tables. This field is not needed by the framework or repositories and its use in examples led to confusion. - Deprecated UserErrorPayload, this will be removed in v0.4.0. User should create a custom error for their aggregate.
- Deprecated helper methods on
EventEnvelope
. These methods will be removed in v0.4.0 however the fields onEventEnvelope
will remain public.
See the v0.2.5 ==> v0.3.0 migration guide for more details.
- Published a new persistence repository, dynamo-es, providing an underlying persistence layer based on AWS' DyanomoDb.
- The
handle
method within theAggregate
trait is now async. This will greatly simplify calling asynchronous clients and services from the aggregate logic. - Deprecation of common peristence crate persist-es, all logic has moved to the
persist
module of cqrs-es. - The event and snapshot table names are now configurable in the persistence packages.
- Corrected a bug that caused mysql-es to return the wrong error when an optimistic lock violation was encountered.
- In
AggregateTestExecutor
the methodthen_expect_error_message
was added to replace the now deprecatedthen_expect_error
.
See the v0.2.4 ==> v0.2.5 migration guide for more details.
- The payload for user errors in the aggregate is now configurable.
- Additional enumerations for
AggregateError
. - Unexpected errors now return with the root cause rather than just the message.
- Move to Rust 2021 edition.
- Audit and update dependencies.
- Added upcasters to event stores.
- Consolidated repositories to a single trait encompassing all functionality.
- Moved generic persistence logic in from postgres-es package.
- Added event context information to event envelope.
Moved to async/await for better tool support.
Aggregates now consume events on apply
.
Require Send + Sync
for queries.
Require Send + Sync
for support of multi-threaded applications.
Corrected to move all command and event logic into the aggregate.