サーガパターンと補償トランザクションとは?
サーガパターンと補償トランザクションとは、サービスをまたぐ長い業務処理を、ローカルトランザクションの連なりとして実現する設計。途中で失敗したら、既に完了した処理を打ち消す補償処理を逆順に実行して整合を回復する。分散ロックを避けられる代わりに、途中の状態が外から見える点を業務として許容する必要がある。
さーがぱたーんとほしょうとらんざくしょん
サーガパターンと補償トランザクションの意味
サービスをまたぐ長い業務処理を、ローカルトランザクションの連なりとして実現する設計。途中で失敗したら、既に完了した処理を打ち消す補償処理を逆順に実行して整合を回復する。分散ロックを避けられる代わりに、途中の状態が外から見える点を業務として許容する必要がある。
サーガパターンと補償トランザクションの具体例
旅行予約で「航空券確保→ホテル確保→決済」と進み、決済失敗時にホテル取消・航空券取消を実行する。補償は物理的な取り消しではなく「取消レコードの追加」として設計するのが定石で、これなら再実行しても二重取消にならない。
サーガパターンと補償トランザクションは試験でどう引っ掛けられる?
2相コミットの代替として語られるが、性質は違う。2相コミットは原子性を保証するがロックが長引き可用性を落とす。サーガは原子性を諦めて可用性を取り、結果整合で辻褄を合わせる——「サーガでもACIDが保たれる」は誤り。補償は「元に戻す」のではなく「打ち消す業務を追加する」ものなので途中経過は他から見えてしまい、メール送信のように打ち消せない処理は最後に置く設計が要る。
サーガパターンと補償トランザクションと関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。