- URL: EventStoreが利用するDynamoDBのテーブル構成
- 著者: 加藤潤一 ( @j5ik2o)
- 公開日: 2023-09-18
いつ読むか?
- Event Sourcing のストレージのスキーマ例として
読書メモ
概要
DynamoDBでイベントソーシングを実現するための2テーブル構成(Journal + Snapshot)
Journalテーブル
- イベントを時系列で保存
- pkey:
集約種別名-hash(集約ID) % シャードサイズで分散書き込み - skey:
集約種別名-集約ID-シーケンス番号
Snapshotテーブル
- 集約の状態を保存してリプレイを高速化
- skey=0 に最新スナップショットを保持
version属性で楽観的ロック
重要ポイント
- JournalとSnapshotは同一トランザクションで書き込み
- スナップショット以降のイベントを適用して最新状態を復元