Contract is a physical touchpoint between bounded contexts. They allow efficient communication between them without creating strong dependencies.

Types of contracts

There are three main contract patterns that can bet implemented by teams

Cooperation

Those types of patterns are implemented by teams with well-established communication; that usually means it’s implemented by a single team or teams with dependent goals. There are two main patterns that work this way:

Customer-Supplier

In this group of patterns, a upstream or downstream team dictates the integration of contracts and how they are structured. This means that one way or another, the team will have to adjust to what it is provided with.
Extras/Attachments/f000974095e11796ec5cf967eb86a260_MD5.png

There are three main patterns that you should be aware of:

Separate Ways

There might be a case, where you may not collaborate at all and none of the teams have any desire to to so. due to communication difficulties caused by company’s politics or its size. It is also a case where teams have hard time collaborating and agreeing on things. In such cases, duplication is a better solution. However, it should be avoided at all cost when implementing core subdomains.