cqrs-es 0.0.6

A lightweight, opinionated CQRS and event sourcing framework targetting serverless architectures.
Documentation

cqrs

A lightweight, opinionated CQRS and event sourcing framework targeting serverless architectures.

Build tag Crates.io docs

Installation

cqrs-es is available from Crates.io or Github.

[dependencies]
cqrs-es = "0.0.6"

Or for a specific branch

[dependencies]
cqrs-es = { git = "https://github.com/serverlesstechnology/cqrs.git", branch = "master"}

Opinions

  • Aggregate persistence is via event sourcing only.
  • Metadata is implemented only as a HashMap<String,String>. Further, the MetadataSupplier 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.