IT用語集 › データベース › サガの補償

サガの補償

データベース Svenska → 更新: 2026-10-22

複数ステップにまたがる分散トランザクション(サガ)を、データベースのロールバックではなく、実行済みの各ステップに対する明示的な取り消し処理で巻き戻すパターン。

複数のサービスにまたがる処理(航空券+ホテル+レンタカーの予約など)は、各サービスが別々のデータベースを持つため単一トランザクションにも2PCにも載せにくく、2PC はスケールもしない。そこでサガは処理をサービスごとのローカルトランザクションに分け、途中で失敗したら、前段を「取り消す」補償トランザクション(ホテルのキャンセル、航空券の返金)を走らせる。

補償は意味上の取り消しであって、厳密な巻き戻しではない。返金はされても、時間が戻るわけではない。方式は、各サービスが互いのイベントに反応するコレオグラフィと、中央のコーディネーターが進行を握るオーケストレーションの二つ。補償処理は冪等でなければならない。マイクロサービス設計の要であり、分散トランザクションやセーブポイントと関連が深い。

← 用語集に戻る