Domain-Driven Design - Where Rubber Meets the Road
summary
Covers concrete DDD tactics: use value objects are immutable to capture validation and domain primitives (ISBN, phone), prefer aggregates so the aggregate root controls lifecycle and all internal updates stay synchronous while cross-aggregate changes go asynchronous, treat repositories as aggregate fetchers not DAOs, use domain services for logic that spans entities and application services to shield infrastructure, avoid anemic models, practice event storming, and consider tools like Project Lombok and ArchUnit to enforce immutability and architectural boundaries.
AI-written summary · about
chapters (16)
- 0:00Introduction to tactical DDD
- 2:53Strategic vs tactical DDD
- 6:50Tactical patterns overview
- 10:23Stop anemic domain models
- 11:32Domain modeling basics
- 12:56Deferred naming technique
- 16:31Value objects explained
- 23:36Entities vs value objects
- 28:38Aggregates in DDD
- 34:00Domain events introduction
- 39:12Domain services vs application services
- 43:10Repositories and factories
- 44:12Architectural implications
- 47:27Layered architecture flip
- 51:20Bounded contexts integration
- 55:40Resources and closing
related talks
55mDomain-Driven Design: back to the roots
48mDomain-Driven Design tactically and practically
38mWhat I talk about when I talk about Domain Driven design
46mDomain Driven Design The Basics
58mImplementing Domain Driven Design as a Pragmatic .NET Developer
45mDon't Overdose on Domain-Driven Design
39mLessons Learned from 10+ Years with Domain Driven Design
47mDomain-Driven Design in Go — It Doesn't Hurt (Much)
