The Aggregate is dead. Long live the Aggregate!
summary
Argues that traditional DDD aggregates are unnecessary and proposes an event‑sourced alternative: treat decisions as message handlers that load only relevant events via a stream query, write with an optimistic conditional append (using a consistency marker), and store ownerless pure events tagged to multiple domain ids. Claims this narrows contention, avoids hard-to-refactor aggregate boundaries, and lets one transactional write validate cross-entity invariants; demonstrates the pattern with course/student examples and shows the conditional append prevents the race that breaks consistency.
AI-written summary · about
chapters (15)
- 0:00Introduction to talk
- 1:02Aggregate definition and confusion
- 3:09Aggregate in event storming
- 8:30Aggregate breaks storytelling
- 9:32Aggregate mixes technical and business
- 13:48Larger aggregates increase contention
- 17:00Aggregate refactoring difficulties
- 21:16Transactions across aggregates
- 26:40Problems with aggregate approach
- 27:00Behavior-focused modeling solution
- 33:15Conditional append in event sourcing
- 40:04Pure events and dynamic consistency
- 45:25Dynamic consistency boundaries benefits
- 46:11Balancing flexibility and structure
- 47:35Q&A and conclusion
related talks
50mThe Aggregate is dead. Long live the Aggregate!
48mThe Aggregate is dead. Long live the Aggregate!
47mThe Aggregate is dead. Long live the Aggregate!
50mDeveloping Microservices with Aggregates
50mEntities and Aggregates: The Moment We 'Clicked' and Understood...
47mPHP: From Model to Commit - the Short History of an Aggregate
58mAll our aggregates are wrong
50mThe Anatomy of Business Conditions
