Saga pattern - AWS処方箋要項

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

Saga pattern

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

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


        Saga pattern

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

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

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

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

重要

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

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