Technology Radar TemplateTechnology Radar Template

Strategic Domain-Driven Design

academy trainingarchitecture
Adopt

With the increasing complexity of software systems, Strategic Domain-Driven Design has become more and more important. Aligning software design with business needs through tactical and strategic patterns has proven invaluable, especially in the era of microservices and Agile methodologies.

In addition, new tools and techniques have emerged that support the practical application of Strategic Domain-Driven Design, such as:

  • Core Domain Charts: Introduced by Eric Evans in 2019, these support the identification and prioritization of core business domains, ensuring that critical areas receive appropriate focus and resources.
  • Event Storming: A popular workshop format for collaboratively exploring complex domains, facilitating a shared understanding and uncovering domain insights.
  • Wardley Maps: Created by Simon Wardley, these are a visualization tool that helps organizations understand their business landscape, anticipate change, and identify strategic opportunities.

The continuing relevance of Eric Evans' Domain-Driven Design, more than 20 years after the book was first published, underscores its importance in modern software development.

Adopt

Designing distributed applications needs to be done wisely. Strategic Domain-Driven Design (DDD) is an approach for modeling large-scale applications and systems, introduced in the latter part of Eric Evans' book Domain-Driven Design.

Domain-Driven Design is a well-known pattern family that has been established at AOE for quite some time now. Unlike Domain-Driven Design, which focuses on the tactical design in an application, Strategic Domain-Driven Design is an approach that is very helpful for the high-level strategic design of an application and distributed software architecture.

It is a pattern family focused on using and defining Bounded Contexts and thinking explicitly about the different relationship patterns and the required "translation" of similar "concepts" between the bounded contexts. It is helpful to argue for and find a good strategic architecture in alignment with the requirements, the domain, and by considering Conway's Law. A context map and a common conceptual core help to understand and improve the overall strategic picture. Especially with the microservices approach, it is important to define and connect services following the high cohesion - low coupling principles by identifying fitting bounded contexts.

The following chart gives an overview of possible relationships between bounded contexts: strategic-domain-driven-design-relationships

While we have found that this approach is especially useful in designing distributed systems and applications with microservices, we have also extended this approach to provide guidelines for general enterprise architectures.