dendrite 0.1.2

Event Sourcing and CQRS in Rust with AxonServer.
Documentation

Rustic Dendrite

A Rust library to connect to AxonServer.

This project is a sibling of dendrite2go and archetype-go-axon, but for the Rust programming language.

See the GitHub project dendrite2go/archetype-rust-axon for an example of how to use this code.

Core concepts

Status

This project has now reached the level of Minimal Viable Deliverable in the sense that the first phase is completed: the current application communicates with AxonServer properly. Like archetype-go-axon it can do the following:

  1. ☑ Set up a session with AxonServer
    • ☑ Enable React app to call a RPC endpoint on the example-command-api service through grpc-web
  2. ☑ Issue commands
  3. ☑ Register a command handler and handle commands
  4. ☑ Submit events
    • ☑ Stream events to UI
  5. ☑ Retrieve the events for an aggregate and build a projection
    • ☑ Validate commands against the projection
  6. ☑ Register a tracking event processor and handle events
  7. ☑ Store records in a query model: Elastic Search
    • ☑ Store tracking token in Elastic Search
  8. ☑ Register a query handler and handle queries
    • ☑ Show query results in UI

Now it would be nice to:

  • Add macros to make the definition of handlers more ergonomic
  • Add in-memory caching of aggregate projections
  • Add support for storing snapshots of aggregate projections in AxonServer.
  • Add support for segmentation to distribute the load on tracking event processors.
  • Add support for sagas.
  • ...