Как я могу создать две совокупности в разных ограниченных контекстах?

Вопрос об интеграции ограниченных контекстов. Например. я имею organization AR в indentity BC, А также courier service AR в logistics BC, Они должны быть связаны.

organization AR состоит из:

  • OrganizationId
  • название
  • Налоговый кодекс
  • Юридический адрес
  • ...

courier service AR состоит из:

  • CourierServiceId
  • название
  • TransportationPriority
  • Рейтинг
  • ...

Клиент отправляет всю эту информацию в одном запросе (имя, налоговый код, юридический адрес, транспортный приоритет, рейтинг).

Вопросы:

  1. В каком приложении я должен подать запрос на создание двух AR?
  2. Как я должен создать оба AR? После того, как я создал первый AR в первом веке до нашей эры, как я должен создать второй AR из второго до нашей эры?

Проблема, с которой я столкнулся:

Сначала я думал опубликовать доменное событие, когда organization AR создан для уведомления logistics BC и создать courier service AR, Но когда я публикую событие домена в первом веке до нашей эры, я должен использовать TransportationPriority, Rating(что нужно для создания AR во втором веке до нашей эры). Но этот язык понятия не относится к первой до нашей эры. Однако они используются в нем. Как я знаю, это неправильно.

Так как я могу решить мою проблему? Извини я плохо знаю английский. Спасибо.

1 ответ

Почему "они должны быть связаны"? Из того, что я понимаю, вы могли бы иметь OrgAR с несколькими CourServAR. Здесь можно сделать следующее:

  • Пользователь попадает на страницу, где он помещает эту информацию (вы написали, что все данные собираются вместе, поэтому это должно быть сделано с помощью формы или чего-то подобного)
  • как только он там, я даю ему пару удостоверений личности (это где-то на посту Уди Даана, я его сейчас не нахожу)
  • с помощью этих идентификаторов, которые вы используете для OrganizationId и CourierServiceId, вы можете отправлять обе команды в разные домены без необходимости использовать события, которые обмениваются данными, которые они не знают / должны использовать
    • Конечно, может случиться так, что хранение одного AR идет не так, поэтому вам нужен способ проверить целостность данных (с заданием или чем-то подобным - тогда вы должны уведомить пользователя о том, что что-то пошло не так во время процесса)

Чтобы получить идентификаторы, вам может понадобиться написать две службы, которые дадут вам следующий полезный идентификатор для OrgAR и CourServAR.

В любом случае, тот факт, что два AR связаны друг с другом, и вы должны хранить их вместе, вызывает тревогу в моем мозгу.

На самом деле, то, что я бы сделал, это:

  • определить, что пользователь действительно должен хранить (OrgAR или CourServAR? например, я беру OrgAR)
  • с помощью этого создайте форму для хранения OrgAR
  • тогда дайте ему возможность хранить CourServAR
    • второй AR уже имеет ссылку на первый (потому что у меня есть его идентификатор), теперь мне нужна команда (в OrgBC), которая говорит "assignCourServtoOrg", которая просто связывает два идентификатора в OrgAR
Другие вопросы по тегам