Vlad Khononov, author of Learning Domain-Driven Design, joins us to demystify DDD - focusing on the business first, and the code second.
We unpack what DDD is really trying to help you achieve, why strategic DDD matters most, and how concepts like subdomains, ubiquitous language, and bounded contexts can guide both architecture and team design.
Along the way, Vlad shares pragmatic advice for avoiding common misconceptions and making choices that keep you flexible as both your product and understanding evolve.
Topics include:
- What DDD is - and the real problem it solves for teams
- Strategic vs. tactical DDD (why strategy comes first)
- The developer’s role in uncovering business intent and future change
- Subdomains: core vs. supporting vs. generic - and why granularity is hard
- Ubiquitous language: speaking the business’s language (and making it stick)
- Bounded contexts: protecting model integrity and when to widen the scope
- One-to-one myths: why subdomains ≠ bounded contexts
- Monoliths, modular monoliths, and microservices - choosing for flexibility
- Ownership boundaries and deploying multiple artifacts atomically
- Integrations and the anti-corruption layer (keeping external models out)
- Using the Cynefin framework to reason about core/complicated/supporting work
Vlad also shares hard-won lessons on communicating with domain experts, dealing with uncertainty in core subdomains, and why wider bounded contexts can make early-stage change safer and cheaper.
This episode is packed with practical guidance for anyone trying to align architecture with real business needs - not just patterns.
This is Part 1 of 2. In
Part 2
we cover: context mapping, modeling workshops, fit-for-purpose architecture and testing, team boundaries, pragmatic adoption, and AI’s impact on modeling.
Show Links