cqrs
A lightweight, opinionated CQRS and event sourcing framework targeting serverless architectures.
Installation
cqrs-es is available from Crates.io or Github.
[]
= "0.0.9"
Or for a specific branch
[]
= { = "https://github.com/serverlesstechnology/cqrs.git", = "master"}
Opinions
- Aggregate persistence is via event sourcing only.
- Metadata is implemented only as a
HashMap<String,String>
. Further, theMetadataSupplier
that the user provides has no insight into the event or aggregate that it supplies metadata for. This may be changed. - JSON serialization only.
- Generics are preferred over boxed traits.
- Persistence is implemented through a Postgres database.
Todos/research
- Event upcasters.
- Some additional framework around
GenericViewRepository
to simplify event replay. - Explore options for increasing the usefulness of
MetadataSupplier
. - Event serialization uses the event type as the root node of the JSON tree. This simplifies deserialization but is non-standard.
- Paging for PostgresEventStore
- Persistence implementation for DynamoDb.