いつ読むか?

  • マイクロサービスパターンの実現方法のカタログとして
  • オーケストレーション、コレオグラフィを知りたいとき
  • TCC (Try operations, Confirmation, and Cancellation) パターンについて知りたいとき
  • Saga パターンについて知りたいとき

読書メモ

要点

  • TCC (Try-Confirm-Cancel): 2フェーズ制御。仮状態を経由するためキャンセルが簡潔だが、処理時間が2倍になる可能性あり
  • Saga: イベント駆動型で補償トランザクションを使用。サービス間が疎結合で柔軟

使い分け

  • TCC: REST同期通信、中央集権型の制御が必要な場合
  • Saga: メッセージキュー非同期通信、分散型アーキテクチャ向け

実践時の注意

  • 基幹システムのマイクロサービス化ではトランザクション制御の設計が特に重要
  • TCCは各サービスにTry/Confirm/Cancel APIの実装が必須
  • Sagaはオーケストレーション型とコレオグラフィ型の両方に対応可能