Невозможно сказать без дополнительной информации, но вот некоторые указатели.
Если вы думаете о CRUD "ограниченные контексты", такие как "Пользователи", "Повара", "Доставщики", те,будет почти наверняка неправильно.Контексты - это , а не службы CRUD для «сущности», они представляют собой семантически сплоченную единицу функций.
Вот практический способ думать об этом: если два ограниченных контекста имеют сообщения, передающие обакстати, они, вероятно, не являются хорошими ограниченными контекстами.Примеры включают в себя: получение данных пользователя / шеф-повара / доставки (запрос-ответ), события передаются в обоих направлениях или происходит синхронизация в обоих направлениях.
Вот еще один способ обдумать это: ограниченный контекст долженпродолжать работать, даже если другие ограниченные контексты не работают.(Оно может постепенно устареть, но будет продолжать работать).
Некоторые идеи ограниченного контекста :
Search
для просмотра ресторанов / поваров независимо от того, что.Обратите внимание, что эта вещь не нуждается в общении любого рода.Данные будут переданы туда, когда это необходимо, но они будут продолжать работать, даже если Ordering
и Delivery
не работают.
Ordering
содержит некоторые пользовательские данные, такие как платежный адрес, кредитные карты или что-то еще,но не все.Например, адрес доставки не нужен.Когда заказ завершен, он просто перенаправит пользователя на Delivery
.Обратите внимание, это будет работать, даже если Search
или Delivery
не работает.
Delivery
будет иметь адрес доставки пользователя и выбрать доставщика, отслеживать доставку.Обратите внимание: это будет работать, даже если Search
или Ordering
не работает.
Круто, эти три не нуждаются в прямом общении вообще.Если все они основаны на веб-технологиях, они могут просто связать (перенаправить) пользователя на следующий шаг, пользователь даже не увидит, что это потенциально разные приложения.
Этот стиль на самом деле имеет имя, этоназывается Автономные системы .