Capabilities

Event Sourcing

An append-only PostgreSQL event store: full history, concurrency control, schema evolution, time travel — and the tools to run it for years.

Relay persists aggregates as streams of events rather than rows of current state. The balance isn’t a number in a column — it’s the sum of everything that ever happened, and every “why is this value wrong?” question has an answer.

What ships: the append-only IEventStore over PostgreSQL, event-sourced repositories, optimistic concurrency with snapshots, an opt-in pessimistic per-aggregate write lock, versioned serialization with upcasters for schema evolution, rename-safe [AggregateType] / [EventType] stable names, rich event metadata (causation, correlation, actor), time-travel / as-of replay, event archiving and compaction for storage control, crypto-shredding for GDPR-grade erasure, and forensic operational queries over the log.

The stories behind it: The Case of the Missing $4,000 is the pitch for history; What Did My Balance Say Last Tuesday? is the payoff.

Learn by building

The tutorials for this area, in order — each with a runnable sample.