The Domain Driven Design Tactical Decision Tree I Wish I Knew 10 Years Ago

A simple process to help you choose between Transaction Script, Active Record, Domain Model, or Event-Soured Domain Model patterns.

I recently got the chance to read Learning Domain Driven Design by Vlad Khononov. The Domain-Driven community has evolved a lot in the past decade, and so have some of the initial ideas of this practice. I really enjoyed this book because it enriches the DDD ideas from Eric Evans's book with modern practices, practical programming, and how to tackle microservices correctly. One of the most valuable things I learned from this book is the tactical decision tree.

In DDD, tactical design refers to the “how” of software development - What concrete patterns and practices we use to solve business problems.
— Vlad Khononov

DDD tactical decision tree — taken from “Implementing Domain Driven Design” by Vlad Khononov

This diagram does an excellent job pointing you to a correct and pragmatic architectural decision when designing various software modules. I use it all the time in my day-to-day job when deciding how to design various pieces of software.

Previous
Previous

Creating Fantastic Programming Courses— Tips Based on My 10-Year Experience

Next
Next

Integrating Bounded Contexts for DDD Beginners