Домены и команды

5 мин чтения

Context Mapping: почему границы доменов недостаточно просто нарисовать

Разделить систему на bounded contexts — только половина работы. Домены всё равно обмениваются данными и зависят друг от друга. Context Mapping нужен, чтобы эти отношения были осознанными, а не случайными.

Какую проблему мы решаем

Bounded Context помогает определить, где заканчивается одна модель бизнеса и начинается другая. Но после этого возникает следующий вопрос: как эти контексты взаимодействуют между собой?

Без явной карты отношений одна команда может зависеть от терминов, данных и темпа изменений другой сильнее, чем кажется. Формально системы разделены, а фактически любое изменение требует длинной цепочки согласований.

Как работает Context Mapping

Context Mapping описывает не только границы доменов, но и характер отношений между ними: кто владеет моделью, кто зависит от контракта, где нужна трансляция понятий и где команды сознательно делят часть модели.

Смысл не в красивой диаграмме. Карта должна отвечать на практические вопросы: кто может менять контракт, кто обязан адаптироваться, где нужен Anti-Corruption Layer и где совместная модель действительно дешевле независимых копий.

Что получает бизнес

Бизнес получает более предсказуемую цену изменений. Если зависимости между доменами видны, проще понять, почему небольшой продуктовый запрос затрагивает несколько команд и где архитектура создаёт постоянную координационную стоимость.

Context Mapping помогает находить места, где организация теряет скорость не из-за недостатка разработчиков, а из-за неудачной формы зависимости между продуктами и командами.

Ещё один эффект — меньше риска при реорганизации. Менять ownership проще, когда понятно, какие контракты и процессы реально связывают части компании.

Что получает команда

Команды получают явные ожидания друг от друга: кто владеет контрактом, кто является upstream, кто адаптируется и где изменения требуют совместного решения.

Это уменьшает количество скрытых интеграций и помогает не смешивать внутреннюю модель одного домена с моделью другого только потому, что так быстрее сегодня.

Что получает клиент

Клиент редко видит Context Map напрямую. Но он ощущает последствия: изменения проходят предсказуемее, интеграционные ошибки реже попадают в production, а разные части продукта меньше противоречат друг другу.

Чем мы за это платим

Карту нужно обсуждать и поддерживать. Если она отстаёт от реальности, документ быстро превращается в архитектурный декор.

Есть и организационная цена: явные зависимости иногда показывают неудобную правду — например, что автономной команда только называется, а важные изменения всё равно контролируются другим доменом.

Когда не нужно усложнять

Для небольшой системы с одной командой и простой предметной областью отдельный Context Map может ничего не добавить. Достаточно понятных границ модулей и владельцев.

Ценность появляется, когда доменов и команд становится несколько, а стоимость согласований начинает влиять на скорость бизнеса.

Что стоит спросить перед решением

В итоге

Границы сами по себе не делают архитектуру независимой. Важно ещё понимать отношения между границами.

Для бизнеса Context Mapping — это способ увидеть не только устройство системы, но и реальную цену координации между частями компании.