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

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

佐賀パターン

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

次の図は、saga パターンが、を使用して注文処理システムを実装する方法を示しています。AWS Step Functions。各ステップ(「processPayment」など)には、プロセスの成功(たとえば、「updateCustomerAccount」)または失敗(「setOrderFailure」など)を処理するための個別のステップがあります。


        佐賀パターン

次の場合は、このパターンを使用することを検討する必要があります。

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

  • 長寿命のトランザクションがあり、1 つのマイクロサービスが長時間実行されている場合、他のマイクロサービスをブロックしないようにします。

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

重要

saga パターンはデバッグが難しく、マイクロサービスの数とともに複雑さが増します。このパターンには、変更をロールバックおよび元に戻すための補償トランザクションを開発および設計する複雑なプログラミングモデルが必要です。

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