製品カタログの公開プロセスを担当するサガ サービス ProcessCatalog があります。
クライアント アプリケーションは、PublishCatalog メッセージを送信します。各メッセージには、catalogid と項目リストが含まれています。
SagaId としてカタログ ID を選択しました。
ProcessCatalog サービスは、適切な順序で他のビジネス サービスを配置する長期実行ビジネス プロセスです。
公開プロセスを推進するために、ProcessCatalog は現在のカタログ アイテムの構成を念頭に置いておく必要があります。
同じユーザーが最初に UI ボタンを押して PublishCatalog(catalogId=1, Itemlist={A,B,C} ) を送信し、次にカタログの構成 (itemList ={A,D,E}) を変更するとどうなりますか? UI ボタンをもう一度クリックして、同じ CatalogId の別の PublishCatalog を送信しますか?
ProcessCatalog エンドポイントが 1 つのワーカースレッドで構成されている場合、すべて正常に動作します (私は思います)。しかし、workthread が 1 よりも大きく、2 つのメッセージが同時に処理される場合はどうなるでしょうか。2 番目のスレッドが 1 番目のスレッドの前に実行を完了するとどうなりますか?
これがビジネス設計上のバグなのか、それとも通常の技術的な問題なのかを尋ねます。