Understanding Eventsourcing
Das erste Buch das Eventmodeling, Eventsourcing und Vertical-Slice Architekturen zu einem konsistenten Software-Prozess zusammenführt.
Das Eventsourcing-Buch ist jetzt auf LeanPub verfügbar.
"Stop guessing the past with Eventsourcing. Stop guessing the Future with Eventmodeling.."
"This is not just another technical book—it’s a roadmap to more predictable, maintainable, and successful software projects. Martin Dilger has created an invaluable resource that I believe will influence how we approach software development for years to come." - Gabriel. N. Schenker
"By reading this book, you won’t just learn new techniques — you’ll transform the way you approach software development. You’ll gain clear, actionable steps to solve problems, communicate with unprecedented clarity, and estimate projects more accurately. In essence, you’ll be equipped to dismantle complexity and foster collaboration like never before." - Adam Dymitruk
"Focusing on a practical implementaion really worked for me. I appreciate the work you have done here." - Gary Craine
"Highly recommended reading" - Michael Plagge
"Thanks for writing the book, it will save me so much time and toil. I really like the Todo pattern to simplify the Saga. Also using an aggregate for uniqueness check is very nice." - William Power
Part I - Foundations
- Foreword by Adam Dymitruk
- Foreword by Gabriel N. Schenker
- Why I care
- Why you should care
- Event Sourcing - what is it?
- Planning Systems using Event Modeling
- CQRS, Concurrency, (eventual) Consistency
- Internal versus external data
- The Anatomy of an event-sourced Application
- Event Streaming, Event Sourcing and Stream Design
- Domain Driven Design
- Sagas - Handling transactions in distributed systems
- Vertical Slicing
Part II - Modelling the System
- Brainstorming
- Modeling Use Cases with Wireframes
- Given / When / Then Scenarios
- Use Case: Clear Cart
- Use Case: Submit Cart
- Use Case: Inventory Changed
- Use Case: Price Changed
- Structuring an Event Model
Part III - From Zero to Running Software
- Technology Stack
- Brief introduction to Axon
- Implementing the first slice - "Add Item"
- Implementing state view slices using Live-Projections
- Implementing Remove-Item and Clear-Cart
- Example Integration with Apache Kafka and Translations
- Implementing a database projection for inventories
- Implementing Automations
- Submitting the Cart
- Handling breaking changes
Part IV - Implementation Patterns
- What this part is about
- Pattern: Database Projected Read Model
- Pattern: Live Model
- Pattern: The (partially) synchronous Projection
- Pattern: The Logic Read Model
- Pattern: Snapshots
- Pattern: Processor-TODO-List - Pattern
- Pattern: The Reservation Pattern
- Where to go from here?
- Notes