Domain Driven Design is a language and domain-centric approach to software design for complex problem domains. The term was coined by Eric Evans in his seminal book “Domain-Driven Design: Tackling Complexity in the Heart of Software” written in 2003. It was relevant in 2003 for designing modular monolith and today as well! Modular monolith is a topic for my other blog. We will use example of retail e-commerce domain to explain the following concepts.