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