All Models Are Wrong: Lessons from Real DDD Projects
summary
Argues that models live in solution space and “all models are wrong but useful,” so teams must carve small, focused models to cut bugs and cognitive load; recommends event storming to discover bounded contexts and then apply strategic DDD before tactical patterns like aggregate root and value objects. Uses Java, Spock tests, Hibernate/GPA tradeoffs, CQRS and the memento pattern for persistence. Claims repositories should expose intentful methods not ad‑hoc queries, and that these practices reduce cross‑service consistency bugs and speed maintenance.
AI-written summary · about
chapters (22)
- 0:00Introduction and speaker intro
- 1:26What to expect from the talk
- 2:31Domains and their problem spaces
- 6:00Models and their limitations
- 8:29Risks of monolithic models
- 9:53Discovering good models step-by-step
- 10:57Ubiquitous language in DDD
- 11:40Bounded contexts explained
- 13:24Event storming for context discovery
- 14:26Context maps and domain prioritization
- 16:30Strategic vs tactical DDD
- 17:15Value objects in tactical DDD
- 19:02Entities and their identity
- 20:30Aggregates and consistency boundaries
- 25:46Designing models: key tips
- 27:10When to use CQRS with DDD
- 30:46Sticking to ubiquitous language in code
- 34:59Sealed classes for domain clarity
- 37:30Modeling behavior over data
- 40:21Pragmatic model persistence
- 44:58Repositories: purpose and pitfalls
- 47:45Key takeaways and conclusions
related talks
48mObject modeling: Theory vs Practice. Round 1
39mLessons Learned from 10+ Years with Domain Driven Design
45mDon't Overdose on Domain-Driven Design
59mDomain-Driven Design - Where Rubber Meets the Road
31mIs Domain-Driven Design Overrated?
38mWhat I talk about when I talk about Domain Driven design
35mTrivialization of DDD or Not?
37mStart with DDD when you have a monolith
