例マイクロサービスでは、複数のマイクロサービスが影響を受けたときに、すべてのサービスが更新されるようにするにはどうすればよいですか?
オンラインチェックアウト:
ユーザーは、ショッピングカートに商品を追加し、チェックアウトをクリックし、クレジットカードでの順序のために支払います。
- 注文はOrderMicroserviceを介して作成され 注文はお支払いは、クレジットカードを介して処理し、PaymentMicroservice
InvoiceMicroserviceを介してユーザに電子メールで送信されます。
c)の請求書を経由して記録されOrderMicroservice
B)を経由して「完了」の状態に更新されA)
請求書マイクロサービスが失敗したか、データベースストレージがいっぱいか、電子メールの送信に失敗したか、支払いが失敗しましたが、注文が既に「完了」とマークされている場合、データベースをロールバックする必要がありますか?ワークフロー全体が正しく実行されたことを確認するためにここで何をしますか?
これはESBとSagaが何かを起こすようなものです。理想的には、OrderItemコマンドはOrdering Sagaを起動し、他のサービスからのイベントを待ってから、他のすべての依存サービスが完了したらOrder Statusを更新します。 – Fran