- URL: TCCパターンとSagaパターンでマイクロサービスのトランザクションをまとめてみた
- 著者: わかっち (@wakatchi_tech)
- 公開日: 2025-03-20
いつ読むか?
- マイクロサービスパターンの実現方法のカタログとして
- オーケストレーション、コレオグラフィを知りたいとき
- TCC (Try operations, Confirmation, and Cancellation) パターンについて知りたいとき
- Saga パターンについて知りたいとき
読書メモ
要点
- TCC (Try-Confirm-Cancel): 2フェーズ制御。仮状態を経由するためキャンセルが簡潔だが、処理時間が2倍になる可能性あり
- Saga: イベント駆動型で補償トランザクションを使用。サービス間が疎結合で柔軟
使い分け
- TCC: REST同期通信、中央集権型の制御が必要な場合
- Saga: メッセージキュー非同期通信、分散型アーキテクチャ向け
実践時の注意
- 基幹システムのマイクロサービス化ではトランザクション制御の設計が特に重要
- TCCは各サービスにTry/Confirm/Cancel APIの実装が必須
- Sagaはオーケストレーション型とコレオグラフィ型の両方に対応可能