Saga
Sagaパターン
並列処理のデザインパターン、マイクロサービスにおけるトランザクション管理手法
#WIP
各サービスが独立して小さなtransactionを実行する
それらは、独立してcommitやrollbackが可能
それらを連携して大きなtransactionを形成する
event駆動のアプローチ
各transactionはeventを生成し、次のtransactionをトリガーする
全体の流れが非同期かつ柔軟に管理される
rollcackにはCompensating Transactionを使用する
各transactionに対して、Compensating Transactionを定義する
失敗時にはこれを実行してデータの一貫性を保つ
https://microservices.io/patterns/data/saga.html
https://qiita.com/yasuabe2613/items/b0c92ab8c45d80318420
Optimistic Offline Lock
https://martinfowler.com/eaaCatalog/optimisticOfflineLock.html
『マイクロサービスパターン 実践的システムデザインのためのコード解説』に詳しく書かれているらしい
4章は、まるまるSagaの章だけど、Sagaの必要条件である、5章のルール3は絶対読んで欲しい。ref