Part I. Fundamentals
For a successful Domain-Driven Transformation, several different tools are necessary. Among these are Domain-Driven Design (DDD), Collaborative Modeling, and software architecture concepts, which we look into in this first part of the book. The following introduction reflects our understanding of how DDD came into being and how complementary techniques have been added to DDD over time.
When the book Domain-Driven Design—later known as the “blue book”—was published by Eric Evans in 2004 [Evans 2004], not all of its concepts were generally well understood outside of initiated circles. It wasn’t until Vaughn Vernon’s book Implementing Domain-Driven Design, called the “red book” [Vernon 2013], came out in 2013 that the ideas were understood by a broader audience. The advent of microservices, which emerged around 2012 as a new architectural style for scaling large software systems, additionally fueled the interest in DDD. This is because DDD not only has useful design patterns to offer with what is known as tactical design. DDD also offers a helpful tool for decomposing domains into subdomains and transferring the resulting domain-oriented structure to the modularization of software systems—whether monolithic or built from microservices: strategic design.
From the sheer number of publications that have appeared on Domain-Driven Design in the years following, you can see how important these concepts have become for software development. The “red book” in 2013 not only ...