Slide 15
Slide 15 text
©MIXI
データ整合性を守るための方法
- Transactions を利用する
- 複数のItemへの操作を一度にできる話
- 条件付き(ConditionExpression)書き込みを利用する
結果整合なので、条件付きの処理が活躍する場面が非常に多い
id: xxxxxxxxxx
amount: 1,000
lock_version: 11
id: xxxxxxxxxx
amount: 5,000
lock_version: 10
先に
update
id: xxxxxxxxxx
amount: 0
lock_version: 11
同時にUpdate
5,000円 を使ったことを記録
- lock_versionでの制御
- lock_version == 10
- amount: 0
- amountによる制御
- amount > 5000
- amountを 5,000 引く
- lock_version: +1
15