Event Sourcing
Overview
- Greg Young’s CQRS Class: Domain Driven Design, CQRS, and Event Sourcing
Greg Young - Course - Hands-on Domain-Driven Design with .NET Core
Alexey Zimarev - Book - Introduction to Event Sourcing - Self Paced Kit
Oskar Dudycz - Blog Post - CQRS and Event Sourcing : Code on the Beach 2014
Greg Young - Talk - Event Sourcing: What it is and why it’s awesome
Barry O Sullivan - Blog Post - Event Sourcing
Arkwrite - Blog Post - Event Sourcing (16 min) (2020)
Rinat Abdullin - Talk - What is Event Sourcing?
Alexey Zimarev - Blog Post - Event Sourcing Basics
Alexey Zimarev - Blog Post - Building Event-Driven Microservices with Event Sourcing and CQRS
Lidan Hifi - Talk - An Introduction to CQRS and Event Sourcing Patterns -
Mathew McLoughlin - Talk - Applying Domain-Driven Design with CQRS and Event Sourcing
Nick Chamberlain - Book
Cqrs
- CQRS Documents (Paper)
Greg Young - Book - CQRS pitfalls and patterns - NDC Oslo 2023
Udi Dahan - Talk - CQRS + Event Sourcing – A Step by Step Overview
Daniel Whittaker - Blog Post - Cutting Edge - CQRS for the Common Application
Dino Esposito - Blog Post - Should you use a CQRS framework?
Nick Chamberlain - Blog Post - CQRS facts and myths explained
Oskar Dudycz - Blog Post - Tackling Complexity in CQRS
Vladik Khononov - Blog Post - Busting some CQRS myths
Jimmy Bogard - Blog Post - Are CQRS commands part of the domain model?
Vladimir Khorikov - Blog Post
Eventual Consistency
- Eventual Business Consistency
Kent Beck - Blog Post - CQRS and user experience
Jimmy Bogard - Blog Post - Dealing with eventual consistency
Dennis van der Stelt - Talk - Living in eventually consistent reality
Bartosz Sypytkowski - Talk
Validation
- MediatR Pipeline Behaviour in ASP.NET Core – Logging and Validation
Mukesh Murugan - Blog Post - How To Validate Commands in a CQRS Application
Daniel Whittaker - Blog Post
Projections
- Read models in event-sourced systems
Alexey Zimarev - Blog Post - Immutable projections
Marijn Huizendveld - Blog Post - Projections Explained
Yves Reynhout - Talk - Event Sourcing Projections patterns: Deduplication strategies
Kacper Gunia - Blog Post - Event Driven Meetup: EventStore as the Whole Stack + Cross Entity Invariant Indexing and Concurrency
Adam Dymitruk - Talk - How to scale projections in the event-driven systems?
Oskar Dudycz - Blog Post - Event Sourcing - Projections
Rinat Abdullin - Blog Post - Projection Building Blocks: What you’ll need to build projections
Barry O Sullivan - Blog Post - Event Sourcing in .NET - Building fast autonomous projections
Dennis Doomen - Blog Post - Live projections for read models with Event Sourcing and CQRS
Anton Stöckl - Blog Post - Managing projectors is harder than you think
Barry O Sullivan - Blog Post
Migrations, Snapshots & Archiving
- Versioning in an Event Sourced System
Greg Young - Book - Keep your streams short! Temporal modeling for fast reads and optimal data retention
Oskar Dudycz - Blog Post - Event immutability and dealing with change
Savvas Kleanthous - Blog Post - Simple patterns for events schema versioning
Oskar Dudycz - Blog Post - How to (not) do the events versioning?
Oskar Dudycz - Blog Post - Snapshots in Event Sourcing
Oskar Dudycz - Blog Post - The Dark Side of Event Sourcing: Managing Data Conversion
Michiel Overeem, Marten Spoor, and Slinger Jansen - Book - Event Sourcing - Versioning
Rinat Abdullin - Blog Post - How to Upgrade CQRS Events Without Busting Your Event Stream
Daniel Whittaker - Blog Post - Event Sourcing after launch
Michiel Overeem - Talk - Event Versioning Guidelines
Derek Comartin - Blog Post - Versioning Schemas in Event-Driven Systems with Bobby Calderwood
Adam Dymitruk - Talk - Copy and transform stream
Blog Post - Event Sourcing: Snapshotting
Kacper Gunia - Blog Post - Upcasters or a versioned event store: pros and cons
Michiel Rook - Blog Post - Dealing with change in event sourced applications
Michiel Rook - Talk
Conflicts
- Conflict Detection and Resolution in an EventSourced System
James Geall - Talk - Handling Concurrency Conflicts in a CQRS and Event Sourced system
Daniel Whittaker - Blog Post - Event Sourcing and Concurrent Updates
Teiva Harsanyi - Blog Post - How to use ETag header for optimistic concurrency
Oskar Dudycz - Blog Post
Testing
- EventSourcing Testing Patterns
Mathias Verraes - Blog Post - Trench Talk: Assert.That(We.Understand());
Yves Reynhout - Blog Post - Specification Testing For Event Sourcing
Rinat Abdullin - Blog Post - Testing Event Sourced applications, part 1: some theory
Yves Lorphelin - Blog Post - Event Sourcing - Specifications
Rinat Abdullin - Blog Post - Testing an Event Sourced Aggregate Root
Nick Chamberlain - Blog Post - An Executable Specification
Nick Chamberlain - Blog Post
Related Categories
Examples & Libraries
- Architecture & DDD Kata: Online Car Dealership
Nick Tune - Blog Post - Muflone
Alberto Acerbis and Alessandro Colla - Source Code - pay-a-friend
Claudiu Chis - Source Code - jet/equinox
Source Code - Eventuous
Alexey Zimarev - Source Code - reactive-domain
Chris Condron - Source Code - dmmusil/conduit
Dylan Musil - Source Code - jet/propulsion
Source Code - Scaling Event Sourcing for Netflix Downloads, Episode 2
Netflix Technology Blog - Blog Post - Akkatecture is a cqrs and event sourcing framework for dotnet core.
Source Code - Real-World CQRS/ES with ASP.NET and Redis Part 1 - Overview
Matthew Jones - Blog Post - AggregateSource
Yves Reynhout - Source Code - EventStore/training-advanced-dotnet
Source Code - Aggregates.NET
Charles Solar - Source Code - mat-mcloughlin/EventStore.Projections
Mathew McLoughlin - Source Code - yreynhout/AggregateSource
Yves Reynhout - Source Code - Liquid Projections
Dennis Doomen - Web Site - SQL Stream Store
Web Site - MerrionComputing/AzureFunctions-TheLongRun-Leagues
Source Code - EventSourcing.NetCore
Oskar Dudycz - Source Code
Lessons Learned & Other Commentary
- Capturing the World in Software
Jessica Kerr - Blog Post - Property Sourcing
Oskar Dudycz - Blog Post - Life is easier with an Event-Sourced system… Yves talks to Damian Hickey: Event Store Conversation
Event Store - Talk - Event sourcing meetup with Alexey Zimarev and Greg Young
Alexey Zimarev and Greg Young - Blog Post - Event Driven Meetup: EventStore as the Whole Stack + Cross Entity Invariant Indexing and Concurrency
Adam Dymitruk - Talk - Keynote - Event Sourcing - DDD Europe 2020
Udi Dahan - Blog Post - Event Sourcing - You are doing it wrong
David Schmitz - Talk - The Missing Post About Event Sourcing
Nicolò Pignatelli - Blog Post - 15 design guidelines for successful Event Sourcing
Dennis Doomen - Blog Post - Event Sourcing and Stream Processing at Scale
Martin Kleppmann - Talk - Unshackle Your Domain
Greg Young - Talk - Some CQRS and Event Sourcing Pitfalls
Frans van Buul - Blog Post - Don’t Let the Internet Dupe You, Event Sourcing is Hard
Chris Kiehl - Blog Post - The Bizarre Mating Ritual Of The Whipnose Seadevil
Greg Young - Talk - Capturing the World in Software
Jessica Kerr - Blog Post - A Decade of DDD, CQRS, Event Sourcing
Greg Young - Talk - A Whole System Based on Event Sourcing is an Anti-Pattern
Jan Stenberg - Blog Post - An empirical characterization of event sourced systems and their schema evolution — Lessons from industry
Michiel Overeem, Marten Spoor, Slinger Jansen, Sjaak Brinkkemper - Book - Event Sourcing: Traceability, Consistency, Correctness
Thomas Bøgh Fangel - Blog Post - Scaling Event-Sourcing at Jet
Lev Gorodinski - Blog Post - Talk Session: The Inconveniences of Event Sourcing
Allard Buijze - Talk - Scaling Event Sourcing for Netflix Downloads
Phillipa Avery and Robert Reta - Talk - What they don’t tell you about event sourcing
Hugo Rocha - Blog Post - Event Sourcing From the Trenches: Domain Events
Dennis Doomen - Blog Post - Event Streaming is not Event Sourcing!
Oskar Dudycz - Blog Post - As time goes by… (technical challenges of bi-temporal Event Sourcing)
Thomas Pierrain - Blog Post
The Good, The Bad, & The Ugly
- Event Sourcing: The Good, The Bad and The Ugly
Dennis Doomen - Blog Post - The Ugly of Event Sourcing–Real-world Production Issues
Dennis Doomen - Blog Post - The Good, The Bad and The Ugly of Event Sourcing
Dennis Doomen - Blog Post - The Good, The Bad and The Ugly - An Event Sourcing Retrospective | Øredev 2018
Dennis Doomen - Talk - Event Sourcing from the Trenches
Dennis Doomen - Blog Post - The Good of Event Sourcing - Conflict Handling, Replication and Domain Evolution
Dennis Doomen - Blog Post - The Ugly of Event Sourcing: Projection Schema Changes
Dennis Doomen - Blog Post
Additional Resources
- 4 Strategies for Future Events with Event Sourcing
Craig Morris - Blog Post - DDD/CQRS Google Group
Forum - ddd-cqrs-es.slack.com
Forum