How does it work, and how do I build it?
From the ideas behind Event Sourcing, CQRS, and Domain-Driven Design to a running application – and the tools to build it with.
Understand the concepts
The ideas behind it all, explained without any product – what an event is, why you keep every one of them, and how commands, events, and read models fit together.
This guide introduces the concept of event sourcing and explains how it differs from traditional approaches to storing application state. You'll learn what event sourcing is, when and why it can be useful, how it compares to CRUD-based systems, and in which kinds of domains it can be applied. The goal is to provide an accessible and practical introduction that helps you assess whether event sourcing might be a good fit for your own projects.
What is CQRS?CQRS stands for Command Query Responsibility Segregation. The idea is simple: Separate the part of your system that changes data from the part that reads it.
What is Domain-Driven Design?Domain-driven design (DDD) is an approach to software design that puts the business domain at the center of the system.
Run it yourself
Write your first events, read them back, query them, and observe them as they happen, step by step.
Build an application
Decide on commands, write events, keep read models up to date, and test all of it.
DDD, CQRS, and Event Sourcing for Go.
Building Event-Driven ApplicationsThis guide explains how to design and implement event-driven applications on top of an event store. It covers the core principles of event-driven architecture, the role of the event store as a durable event source, and strategies for integrating event handling, processing, and downstream systems. While the event store does not define how applications should be structured, it provides a solid foundation for building systems that react to change rather than poll for it.
Testing Event-Sourced SystemsThis guide explains how to test event-sourced systems. It covers unit tests for application logic, integration tests involving the event store, and practical strategies for managing test data and verifying event-driven behavior. When the event store is focused solely on storing and retrieving events, testing primarily concerns the application layer – and how it interacts with the event store.
Look it up
The documentation of every product, from the quickstart to the reference.
Pick your tools
Our products for every stage of the lifecycle, and the landscape of what others build around Event Sourcing.