dendrite

Crates.iodendrite
lib.rsdendrite
version0.14.1
sourcesrc
created_at2021-01-12 11:38:31.548338
updated_at2024-01-24 12:47:00.481273
descriptionEvent Sourcing and CQRS in Rust with AxonServer.
homepagehttps://github.com/rustigaan/dendrite
repositoryhttps://github.com/rustigaan/dendrite
max_upload_size
id340833
size5,532
Jeroen van Maanen (jeroenvanmaanen)

documentation

README

Dendrite

A Rust library to connect to AxonServer.

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

Core concepts

More information

The crate dendrite-macros provides macros that makes working with the dendrite crate more ergonomic.

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

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

As well as:

  • In-memory caching of aggregate projections
  • Access to Axon Command-, Event-, QueryRequest-message in body of handlers.

Now it would be nice to:

  • 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.
  • ...
Commit count: 165

cargo fmt