9 releases (breaking)
0.14.1 | Jan 24, 2024 |
---|---|
0.13.0 | Nov 11, 2023 |
0.12.0 | Nov 21, 2022 |
0.10.1 | Jan 18, 2022 |
0.7.0 | Dec 3, 2021 |
#27 in #cqrs
Used in 4 crates
98KB
2.5K
SLoC
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:
- ☑ Set up a session with AxonServer
- ☑ Enable React app to call a RPC endpoint on the example-command-api service through grpc-web
- ☑ Issue commands
- ☑ Register a command handler and handle commands
- ☑ Submit events
- ☑ Stream events to UI
- ☑ Retrieve the events for an aggregate and build a projection
- ☑ Validate commands against the projection
- ☑ Register a tracking event processor and handle events
- ☑ Store records in a query model: Elastic Search
- ☑ Store tracking token in Elastic Search
- ☑ 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.
- ...
Dependencies
~10–19MB
~255K SLoC