
In the image we can see that a small layer is created that does not contain any business logic, it only contains translation logic. This layer is known as the Anticorruption Layer (ACL). That layer implements adapters that translate those concepts to the concepts of the other model. To avoid corruption and protect our model from external influences, we can create a layer that contains interfaces written with the language of our model. If we are not careful when integrating the models and we don’t adapt the interfaces we can corrupt our model by introducing foreign concepts and generating ambiguities. When two models need to interact, they are likely to use a different ubiquitous language and are modeled in a completely different way. Next we are going to see the different elements that are usually visible in a Context Map. Finally, the Human Resources context is integrated with a context developed by a third-party, it adapts to its model to avoid the cost of translations. On the other hand, the Payroll team is influenced by the Finance context, therefore it must be modified when the other changes. In this first example, we can see that the teams that develop the Payroll and Human Resources contexts work together on the same project establishing a partnership. The map evolves over time, it’s a living document. This map allows everyone to have a holistic view, allowing conflicts to be resolved early and avoiding accidentally corrupting the integrity of the models. To combat this, a Context Map is usually created to visualize the relationships between the Bounded Contexts at a technical and organizational level.

Politics between teams must be managed properly. The relationships between the teams are also important, not all teams are motivated by the same forces or are aligned in the same direction. If the teams do not know the existing contexts and how they relate with each other, there is a risk of corrupting the models and generate a Big Ball of Mud. Some are developed by company teams and others are legacy systems or third-party systems.

In a large system there are multiple Bounded Contexts that collaborate with each other. Este post también está disponible en español.īounded Context Integration I - Context Mapīounded Context Integration II - Technical Integration
