What is DDD?
The term DDD was coined by Eric Evans in his book, Domain-Driven Design (Addison-Wesley, Eric Evans, 2004). It is an approach to software development where the application implementation will completely be a mirror complex and an ever evolving business domain. The core of the focus is on the domain model itself, with other more generic concerns (security, persistence, user interface) being treated as secondary to the domain model itself. The domain model is considered a potential differentiator to the business (unlike the more generic concerns); hence, the increased focused on modeling it within your applications and then representing it within your code, evolving that model as the business evolves.
DDD is all about a set of patterns to facilitate building out complex (enterprise level) applications from the domain model outward. If you have implemented any Enterprise application integration (EAI) patterns, then some of the DDD patterns may be familiar to you (albeit with different...