Messaging & Async
Store state changes as an append-only sequence of events and build projections
Persist domain events as the source of truth. Reconstruct current state by replaying events and maintain materialized views for queries.
When auditability and temporal queries are required, or complex domains benefit from CQRS and projections.
Financial ledgers, audit-heavy systems, and complex domains with evolving views.
# Event store interactions
eventStore.append(event)
projector.on(event, updateReadModel)
readModel.query(params)
Purpose-built event store
Clusters with billions of eventsLedgering via event streams
Regulated, audit-heavy systemsKafka-backed event-sourced services
Large distributed estatesPartitioned logs with compaction
High - Contracts, snapshots, replay
Medium - Storage and tooling