Concepts
The ideas behind Event Sourcing, CQRS, and Domain-Driven Design, explained without any product, along the five stages of the lifecycle.
Domain-driven design (DDD) is an approach to software design that puts the business domain at the center of the system.
Event-StormingThis guide introduces Event-Storming as a collaborative modeling technique for discovering and designing events in event-sourced systems.
Modeling EventsThis guide explains how to model events effectively in an event-sourced system.
Designing AggregatesThis guide explains how to design aggregates in event-sourced systems.
Dynamic Consistency Boundaries (DCBs)Event-sourced systems often use aggregates to define where consistency must be preserved.
This guide introduces the concept of event sourcing and explains how it differs from traditional approaches to storing application state.
What is CQRS?CQRS stands for Command Query Responsibility Segregation.
Use CasesThis guide helps you understand where event sourcing can be most effectively applied.
Designing Read ModelsThis guide explores how to design effective, purpose-driven read models in an event-sourced system.
Read-Model Consistency and LagThis guide explains how to manage the consistency and freshness of read models in event-sourced systems.
Eventual Consistency in PracticeThis guide explains what eventual consistency means in the context of event-sourced systems and how to design applications that behave correctly even when data is temporarily out of sync.
Snapshots and PerformanceThis guide explains how to use snapshots in event-sourced systems to improve performance and reduce overhead during replay.
Optimizing Event ReplaysThis guide explains how to optimize the performance and structure of event replays in event-sourced systems.
Patterns for Temporal QueriesThis guide explores patterns for performing time-based queries in event-sourced systems.
Versioning EventsThis guide explains how to evolve event types and structures in a safe, predictable, and maintainable way.
GDPR ComplianceThis guide explains how to assess and achieve GDPR compliance in event-sourced systems.
Common MistakesThis guide describes common mistakes and misunderstandings that arise when working with the event sourcing model.
This guide explains the Decider pattern.
Hexagonal ArchitectureThis guide explains Hexagonal Architecture, also known as Ports and Adapters.
Building Event HandlersThis guide explains how to build event handlers in event-sourced systems.
Building Event-Driven ApplicationsThis guide explains how to design and implement event-driven applications on top of an event store.
Task-Based UIsThis guide explains task-based user interfaces.
Testing Event-Sourced SystemsThis guide explains how to test event-sourced systems.
Building with AIThis guide explains why event-sourced systems are particularly well suited to being built with the help of AI coding agents, and how to set up the work so that an agent produces reliable code rather than plausible guesses.
This guide explains why an event-sourced history is the best raw material for analytics, machine learning, and AI, and how the path from events to insights is structured.
Designing Analytical ProjectionsThis guide explains how to turn an event stream into datasets for analysis, statistics, and machine learning.
Point-in-Time CorrectnessThis guide explains how to prevent data leakage when datasets for analytics or machine learning are built from an event history.
Features from EventsThis guide explains how to derive features – the measurable variables a model learns from – from an event history.
LLMs and Event StreamsThis guide explains how large language models (LLMs) can work directly with an event history – answering questions in plain language, exploring patterns, and helping to investigate what happened.
Causal Inference from Event StreamsThis guide explains how an event history helps to tell cause and effect apart from mere correlation.
Closing the LoopThis guide explains how predictions become actions, and how the results of those actions flow back into the event history to make the next predictions better.