Когда позиция убирается из заказа, можно ли проводить транзакцию в ограниченном контексте? - PullRequest
1 голос
/ 27 июня 2011

В моем домене у меня есть 2 ограниченных контекста, которые имеют отношение к этому вопросу:

  1. Закупки - когда клиент заказывает услуги
  2. Выполнение - где услуги назначаются поставщикам длябыть завершено

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

Если клиент удаляет услугу из заказа (т.е.в контексте закупки), если эта услуга уже была назначена поставщику, который должен быть выполнен (но еще не выполнена), эта услуга также должна быть удалена в контексте выполнения.

Здесь есть несколько вариантов, и я хотел бы услышать мнение сообщества:

  1. У меня неправильный контекст, потому что это создаст кросс-контекстную транзакцию.
  2. Мне здесь может не потребоваться согласованность транзакций.Конечно, это должен решить заинтересованный бизнес, который напрашивается на 2 вопроса: каковы варианты реализации?Как мне задать этот вопрос заинтересованному лицу?
  3. Это является допустимым нарушением правила "без кросс-контекстных транзакций".

РЕДАКТИРОВАТЬ

Все это происходит в одном процессе, поэтому вероятность сбоя в середине транзакции очень мала.

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

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

0 голосов
/ 29 июня 2011

Почему необходимо, чтобы при редактировании заказа это влияло на службу выполнения?

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...