Sagaパターン - AWS の規範的ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Sagaパターン

-sagapatternは、分散アプリケーションの一貫性を確立し、複数のマイクロサービス間のトランザクションを調整してデータの一貫性を維持するのに役立つ障害管理パターンです。マイクロサービスはトランザクションごとにイベントをパブリッシュし、次のトランザクションはイベントの結果に基づいて開始されます。トランザクションの成功または失敗に応じて、2つの異なるパスを取ることがあります。

次の図は、その方法を示していますsagapattern は以下を使用して注文処理システムを実装しますAWS Step Functions。各ステップ (例:」ProcessPayment」) には、成功を処理するための個別のステップもあります (例:」UpdateCustomerAccount「) または失敗 (例:」SetOrderFailure「) のプロセスの


        Sagaパターン

次のような場合は、このパターンの使用を検討してください。

  • アプリケーションは、緊密に結合することなく、複数のマイクロサービス間でデータの一貫性を維持する必要があります。

  • 存続期間の長いトランザクションがあり、1 つのマイクロサービスが長時間実行されても、他のマイクロサービスがブロックされることは望ましくありません。

  • シーケンスで操作が失敗した場合、ロールバックできる必要があります。

重要

-sagaパターンはデバッグが難しく、マイクロサービスの数が増えるにつれて複雑さが増します。このパターンには、ロールバックや変更の取り消しを補うトランザクションを開発および設計する複雑なプログラミングモデルが必要です。

の実装の詳細については、sagaマイクロサービスアーキテクチャのパターン、パターンを参照してくださいサーバーレスを実装するsagaを使用したPatternAWS Step Functions上にAWS規範的ガイダンスのウェブサイト