Moving away from CRUD: DDD + CQRS
summary
CRUD-first scaffolding breaks down on complex domains: design based on entities leaks business rules, causes transaction coupling and concurrency failures. The alternative uses domain events, an event bus and aggregate roots to decouple actions (purchase commits) from side effects (email, inventory updates), and builds a separate read model graph (example uses Blueprints) for fast queries and DTOs for UI. This reduces rollback risk, isolates concurrency, and lets denormalized read stores answer complex queries efficiently.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 2:08Traditional architecture issues
- 4:20Anemic domain model
- 7:38Object-oriented design
- 10:44Domain-driven design concepts
- 12:47Transaction and side effects
- 15:35Domain events
- 18:29Concurrency issues
- 21:42Aggregate roots
- 24:40Modern architecture overview
- 25:40Bounded contexts
- 29:25Ubiquitous language
- 31:58Read vs write models
- 33:42Complex query challenges
- 36:48CQRS implementation
- 41:27Conclusion
related talks
41mFrom CRUD to DDD: how did we end up here?
30mDomain-Driven Design + Command Query Responsibility Segregation + Event Sourcing
59mDomain-Driven Design - Where Rubber Meets the Road
38m7 Years of DDD: Tackling Complexity
45mUsing DDD To Decompose Your Monolith
43mArchitecture antipatterns and how to beat them 1/2
02h 31mSlice & Dice your Monolith with Domain Driven Design
59mCQRS pitfalls and patterns
