Decoding DDD: A Three-Tiered Approach to Django Projects
summary
Claims that Django can adopt DDD pragmatically, then shows how: starting from ubiquitous language and bounded contexts, progressing to making Django models into rich aggregates and value objects, and finally isolating a domain layer with plain old python objects plus repository/ports-and-adapters. Shows a real migration from a huge codebase — 85 apps, 2,200 models, 500 relations — into a modular monolith, explains tradeoffs (slower repo translations and boilerplate vs easier testing, clearer transactional boundaries) and when each level is worth the cost.
AI-written summary · about
chapters (18)
- 0:00DDD in Django projects
- 1:48Django and DDD
- 2:53Monolith to modular Django
- 4:41Strategic DDD patterns
- 5:04Ubiquitous language
- 7:54Bounded contexts
- 9:00Bounded contexts in Django
- 11:08Tactical DDD patterns
- 11:29Avoiding anemic models
- 13:19Value objects
- 15:32Aggregates
- 17:43Aggregate design rules
- 18:24Domain services
- 19:08Decoupling domain from models
- 20:12Repository pattern
- 21:57Testing domain services
- 23:01Trade-offs of level two
- 24:07Choosing DDD levels
related talks
01h 05mGetting to DDD: Pragmatic or Principled?
01h 11mAn introduction to DDD
38mIntroDDDuction
01h 04mDomain Driven Design: The Good Parts
45mLearning to Love DDD - a Tale of Two Products
29mDjango from the Trenches: Patterns and Practices After 15 Years of Experience with Django
59mDomain Driven Design: The Good Parts
58mDDD really matters!
