goes - Event-Sourcing Framework
goes
is a collection of interfaces, tools, and backend implementations that
allow you to write event-sourced applicatios in Go.
If you have any questions or feedback, feel free to open an issue or start a discussion.
Getting Started
Installation
goes is not yet versioned because the API still changes too often. Install from
the main branch or from specific commit hash, and make sure to install nested
modules with /...
go get github.com/modernice/goes/...@main
go get github.com/modernice/goes/...@<commit-hash>
Examples
Introduction
This documentation assumes knowledge of CQRS, event-sourcing, and other related concepts. Please make yourself familiar with these before reading further.
Features
- Event Store Implementations (In-Memory, MongoDB)
- Distributed Event Bus (NATS Core / NATS JetStream)
- Distributed, event-driven Command Bus
- Aggregate Framework
- Projection Framework
- SAGAs
- Pre-built Modules
Components
goes provides incrementally adoptable components that together form a complete framework for building event-sourced applications. Read a component's README for a guide on how to use it.
Backends
Event Bus
Event Store
Contributing
TBD