DDD - Architectures

DDD is not architecture. DDD is an approach to building software with a focus on the domain. Moreover, by “driven-design”, we mean mindset to adopt so we can build domain models in the right way and with the intention of solving or improving some aspect of business.

When implementing DDD, we will have to define/design an architecture at some point. This refers to the style of architecture we will use. As said before, DDD is not an architecture and we can use different styles of architecture (Onion, Hexagonal, Layered, CQRS, Event-driven, Reactive, etc.) to apply DDD.

Here I briefly present some of the architectural possibilities, models and patterns to be used in a DDD project:

DDD can assist to build software and solve problems and it is possible to use a specific architecture in each context. For example, we can use a Reactive architecture in context A and Hexagonal Architecture in context B.