【いべんとそーしんぐ】
イベントソーシング とは?
💡 「何が起きたか」を全て記録して状態を再現する
📌 このページのポイント
- 変更の履歴が全て残るため完全な監査ログになる
- 過去の任意の時点の状態を復元可能(タイムトラベル)
- CQRSパターンと組み合わせることが多い
- 銀行の取引履歴やECの注文履歴に適している
普通のDBと何が違うの?
普通のDBは「現在の残高は10,000円」と最新の状態だけ保持する。イベントソーシングは「入金5,000円→入金8,000円→出金3,000円」と全ての変更イベントを保持する。イベントを順番に再生すれば現在の状態を復元できるし、過去の任意の時点に「巻き戻す」こともできるんだよ
どんな場面で使うの?
CQRSって何?
Command Query Responsibility Segregation(コマンドクエリ責務分離)の略。書き込み(Command)と読み取り(Query)のモデルを分離するパターン。イベントソーシングでイベントを書き込み、読み取り用のビューを別途構築する。書き込みと読み取りを独立してスケールできるメリットがあるよ
イベントソーシングの難しさは?
まとめ:ざっくりこれだけ覚えればOK!
「イベントソーシング」って出てきたら「状態の変更を全てイベントとして記録する設計パターン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Event Sourcing」 = イベントソーシング
💬 Event(出来事)をSource(源泉)にしてシステムの状態を管理する考え方だよ