Использование паттерна ограниченного контекста не только обеспечивает согласованность единого языка, но также даёт возможность моделирования. Нельзя создать модель, не определив её цель — её границу. Граница разделяет ответственность языков. В одном ограниченном контексте единый язык может моделировать предметную область для решения одной конкретной проблемы. В другом ограниченном контексте эти же бизнес-сущности могут использоваться для решения другой проблемы.
Кроме того, модели в разных ограниченных контекстах могут эволюционировать и реализовываться независимо. Однако сами ограниченные контексты не являются независимыми. Систему нельзя построить из независимых компонентов: для достижения целей системы они должны взаимодействовать друг с другом. То же самое относится и к ограниченным контекстам. Несмотря на то что их реализации могут развиваться независимо, они должны интегрироваться друг с другом. В результате между контекстами всегда будут появляться точки соприкосновения — контракты.
Необходимость существования контрактов обусловлена различиями в моделях и языках ограниченных контекстов. Поскольку каждый контракт влияет как минимум на две стороны, они должны быть определёнными и согласованными. Кроме того, два ограниченных контекста, по определению, используют разные единые языки. Какой язык будет использоваться для интеграции? Эту проблему следует решать на этапе проектирования.
В этой главе вы узнаете о паттернах предметно-ориентированного проектирования, которые определяют способы интеграции и отношений между ограниченными контекстами. Эти паттерны определяются исходя из типа взаимодействия между командами, которые работают над ограниченными контекстами. Мы разделим паттерны на три группы, каждая из которых представляет тип командного взаимодействия: сотрудничество, заказчик-поставщик и раздельные пути.