
Event-Sourcing Framework for Go
Build distributed, event-sourced applications with type-safe aggregates, commands, and projections.
Embed a base type, register typed event handlers, and let the framework handle versioning, persistence, and replay.
Publish and subscribe to events with NATS or use MongoDB and PostgreSQL as event stores. Swap backends without changing application code.
Dispatch and handle commands with full generic type safety. Synchronous or asynchronous — your choice.
Build read models with continuous or periodic schedules. Automatic progress tracking, debouncing, and startup catch-up.
Map event names to Go types for automatic serialization. JSON by default, swap to MessagePack or Protobuf with one option.
Capture aggregate state at a point in time. Replay only recent events instead of the full history.
Fluent test assertions for aggregates, in-memory backends for integration tests, and conformance suites for custom implementations.
Use only what you need — the event system, commands, projections — and adopt more components as your project grows.
MongoDB, PostgreSQL, and NATS backends ready to go. In-memory implementations for testing. Zero external dependencies for prototyping.