バックエンド、データ、セキュリティ さらに詳細 C · 業界の慣例 プラットフォーム: ウェブ

Saga Pattern

サガパターン

サーガは複数の保存済みステップを1つのビジネスジョブに結びつけます。後のステップが失敗した場合、以前の処理を修正するために再試行するか、別のステップを追加します。

仕組みを見る
そう呼ぶかもしれません Saga Pattern分散サーガサーガワークフローサーガトランザクション

仕組みを見る

元の作業例サガパターン
状態と回復サガパターンsaga ID + local transaction -> next step; failure -> retry | compensation -> terminal state
旅行予約ホテルに失敗しました
  1. ✓フライト保持flight_tx_7
  2. ✓カードが請求されたpay_tx_8
  3. !ホテル利用不可hotel_tx_9
↶ 補償完了saga: cancelled
安全を維持各サービスはローカルステップをコミットし、発生したことを記録します。回復前方作業を試みるか、明示的な補償アクションを実行する。
saga ID + local transaction -> next step; failure -> retry | compensation -> terminal stateJOB
サガパターンバックエンドの信頼性

もう一つの例

注文 `984` は在庫を予約し、NT$248 を承認し、その後出荷を要求します。出荷は住所を拒否します。サーガは認証を無効にし、同じサーガIDで在庫を解放します。その後、注文を補償済みとして記録します。

主な部分

  1. 01サガIDと状態
  2. 02参加しているサービス
  3. 03ローカルトランザクション
  4. 04結果メッセージ
  5. 05再試行または補償
  6. 06監査と手動回復

以下の場合に使用します

1つのビジネスジョブが複数のサービスやデータストアにまたがる場合はサーガを使用してください。1つの全か無かのデータベースステップではジョブ全体をカバーできない場合にのみ使用してください。保存される各ステップ、次のアクション、再試行、修正アクション、および最終状態を定義してください。

以下の場合は使用しないでください

1回のデータベース保存で全作業が完了する場合はサーガを追加しないでください。修正アクションは新しい作業です。それは失敗したり異なる結果を残したりする可能性があります。アクションの取り消しが安全でない場合は人に確認してください。

コードで使用する名前

saga ID + local transaction -> next step; failure -> retry | compensation -> terminal state

出荷前に

Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.

コピーできるリクエスト

Outcome:Complete the task with サガパターン (Saga Pattern)。 User context:注文 `984` は在庫を予約し、NT$248 を承認し、その後出荷を要求します。出荷は住所を拒否します。サーガは認証を無効にし、同じサーガIDで在庫を解放します。その後、注文を補償済みとして記録します。 Technical concept or control:サガパターン (Saga Pattern)。 Why it fits:1つのビジネスジョブが複数のサービスやデータストアにまたがる場合はサーガを使用してください。1つの全か無かのデータベースステップではジョブ全体をカバーできない場合にのみ使用してください。保存される各ステップ、次のアクション、再試行、修正アクション、および最終状態を定義してください。 Do not use it when:1回のデータベース保存で全作業が完了する場合はサーガを追加しないでください。修正アクションは新しい作業です。それは失敗したり異なる結果を残したりする可能性があります。アクションの取り消しが安全でない場合は人に確認してください。 Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary):単一の公式標準が全体の用語を管理するわけではありません。その意味はチーム、プラットフォーム、またはフレームワークによって変わる可能性があります。 Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.

このリクエストを確認する

Review how サガパターン (Saga Pattern) is used now. Definition: サーガは複数の保存済みステップを1つのビジネスジョブに結びつけます。後のステップが失敗した場合、以前の処理を修正するために再試行するか、別のステップを追加します。 Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.

C
この用語はどれくらい公式か?

業界の慣例

この用語は職場でよく使われます。記載されている情報源は実践や制限をサポートする場合があります。用語のすべての部分を定義するものではありません。

単一の公式標準が全体の用語を管理するわけではありません。その意味はチーム、プラットフォーム、またはフレームワークによって変わる可能性があります。

範囲
ソースがカバーするもののみ:正式名、定義、実装、使用ガイド、避けるための指針
ドキュメントステータス
安定
チェックオン
2026-07-30

証拠の情報源と範囲

権威のある情報源 + 用語参照 · Amazon Web Services · 安定 Saga patterns 範囲: 正式名、定義、実装、使用ガイド、避けるための指針 ここでの役割: 直接用語参照 ソースの範囲: 正式名, 定義, 実装, 使用ガイド, 避けるための指針 背景ソース Azure Architecture Center — Compensating Transaction pattern ここでの役割: 定義ではなく有用な背景情報

自分でコピーする

ブラウザはこれをコピーできませんでした。下のリクエストを選択して自分でコピーしてください。