Event sourcing for Rust.
Macro-driven aggregates, guaranteed delivery via outbox pattern,
and battle-tested infrastructure from Kafka to Cassandra.
An external event arrives, an event handler reacts, a command is produced, a command handler emits an event, the outbox guarantees delivery. Nothing is lost.
Define your aggregate, declare commands and events, write business logic. Canon generates all the wiring, dispatch, and infrastructure plumbing.
Production-grade event sourcing out of the box. No assembly required.
Strict DAG dependency graph. Every infrastructure concern has a trait crate and a concrete implementation. Swap Cassandra for DynamoDB. Swap Kafka for Pulsar. The core never changes.
A real-time supply chain game powered entirely by Canon's event sourcing pipeline. Every ship movement, every stock drain, every oversight gate — real events flowing through Kafka, Cassandra, and five independent services.