Skip to content

Domain-Driven Design (DDD) in practice

The motivation, the way of thinking, and the techniques behind DDD is well defined in the book by Eric Evans. One of the challenges however, is how these can be applied and implemented in real applications dealing with technical boundaries and constraints. To quote Greg Young:

"Traditional enterprise application architecture, such as JEE usually consists of an "object-oriented" domain model encapsulated inside a procedural service layer, persisted in a relational database, flattened out on a data entry screen by the UI layer, and crunched daily into management reports by some reporting tool".

The content on these pages addresses the implementation details developing an application on the Java platform. To begin practicing DDD, it is recommended to examine the DDD sample application. The sample domain is well known to the readers of the DDD book, and gives some examples of how the basic concepts can be implemented. However, the application is too simplistic in many ways. There are several issues that it does not cover, like performance trade-offs and transaction boundaries.