
分散トランザクション入門 - 2相コミットが詰まる理由と Saga パターンの使いどころ
複数のデータベースやサービスにまたがる更新を、どうやって「全部やるか、全部やらないか」にするのか。原子的コミット問題から出発して、2相コミットの手順とコーディネータ障害によるブロッキング、3相コミットが実用されない理由、X/Open XA仕様のヒューリスティック決定、PostgreSQLのPREPARE TRANSACTIONの実演、Garcia-MolinaとSalemの1987年Sagas論文に基づく補償トランザクション、コレオグラフィとオーケストレーションの違い、二重書き込みとアウトボックスパターン、冪等性とexactly-onceの現実、TCC、PercolatorとSpannerの合意ベースのアプローチまでを、実際に動かして出力を確認したコードとともに整理します。





