1

私のドメインには、この質問に関連する 2 つの境界付けられたコンテキストがあります。

  1. 購入 - 顧客がサービスを注文する場所
  2. フルフィルメント - サービスがベンダーに割り当てられて完了する場所

注文の有効期間中、いつでも顧客が注文を編集できることが要件です。

顧客が注文からサービスを削除する場合 (つまり、購入コンテキスト内)、そのサービスが実行するベンダーに既に割り当てられている (まだ実行されていない) 場合、そのサービスはフルフィルメント コンテキストでも削除する必要があります。

ここにはいくつかのオプションがあります。コミュニティの意見をお聞かせください。

  1. これによりクロスコンテキストトランザクションが作成されるため、コンテキストが間違っています。
  2. ここでは、トランザクションの一貫性は必要ないかもしれません。もちろん、それはビジネス関係者が決定することであり、2 つの質問があります。実装オプションは何ですか? この質問をビジネス関係者にどのように提起すればよいでしょうか?
  3. これは、「クロス コンテキスト トランザクションを禁止する」というルールに違反しても問題ありません。

編集

これはすべて 1 つのプロセス内で行われるため、トランザクションの途中で失敗する可能性は非常に低くなります。

4

2 に答える 2

2

利害関係者に尋ねる質問は次のとおりです。注文は常に編集可能です - 注文がすでに履行された後に編集されるとはどういう意味ですか?

于 2011-06-28T05:59:51.653 に答える
0

注文を編集すると、フルフィルメント サービスに影響を与える必要があるのはなぜですか?

私の考えでは、これは境界のあるコンテキストを超えています。編集中のオーダーは、正当な理由がない限り、そのドメインを離れてはなりません。注文情報が完了する前にフルフィルメント サービスに伝達されるのはなぜですか?

あなたのドメインに関する私の明らかに非常に限られた理解に基づくと、最初に注文を完了してから、作成イベントをサービス バスに送信し、そこでフルフィルメント サービスによってピックアップされると思います。したがって、コンテキストをまたがるトランザクションは発生しません。

于 2011-06-29T12:11:03.890 に答える