Domain-Driven Design (DDD) is an approach that focuses on modeling a complex domain and problem solving. It emphasizes modeling the domain and domain logic over technical details. When building large, mission critical systems, tactics and strategy in DDD address both tactical and strategic design challenges. To get started, one looks at the business processes, breaks the domain into sub-domains, focuses on a sub-domain with domain experts to develop a shared language, and identifies domain events based on commands and queries.