When integrating Bounded Contexts it is important to remember that they must be autonomous. Each one is developed independently and isolated from the others. Your codebase can be evolved without fear of breaking functionality of another Bounded Context. There are no source code dependencies between Bounded Contexts. We create these contexts to reduce the complexity of our system and to be able to deliver business value quickly, so it is essential to try to respect their autonomy. Next, we will see different technical integration strategies between Bounded Contexts and analyze the problems and benefits that each brings.
In this post we’ll see how to create a Context Map that allow us to visualize the technical and organizational relationships between the different Bounded Contexts.
In the previous post of this series we saw how to decompose a complex domain into less complex subdomains. Each subdomain has its own model, therefore we are going to have many models coexisting at the same time. If we only had a single model, the concepts of a business area could be confused with similar concepts from other areas and this would increase the complexity and coupling. Domain-Driven Design proposes separating a large system into many models protecting the integrity of each one so that concepts remain isolated, consistent and protected. This is achieved by encapsulating each model into a Bounded Context.
Domain Driven Design or DDD is a software development philosophy that allows teams to handle effectively the construction and maintenance of software for complex problem domains.
Domain events are one of the tactical design patterns of Domain Driven Design (DDD).
They appeared after the blue book where Eric Evans introduces the core concepts of DDD. They had a great impact on the community because of the possibilities they provide.
On the strategic side of DDD, the community discovered that focusing on the main events that occurs on the business leads to a better understanding of the problem domain (for example that a customer made a purchase or that a product is ready to be shipped).
Events are a great tool that allows discovering and understanding complex business flows involving different actors.