本文へスキップ

イベントソーシングとは?

いべんとそーしんぐ

イベントソーシングとは、システム状態変化をすべて「イベント(出来事)」として記録・蓄積し、その履歴から現在の状態を再現するソフトウェア設計パターンです。

イベントソーシング(Event Sourcing)とは、アプリケーションの状態データベースに直接保存するのではなく、状態の変化を引き起こしたイベントをすべてログとして記録し、そのイベント列を順番に再生することで現在の状態を再構築する設計パターンです。

従来の「現在の状態を上書き保存する」方式とは根本的に異なります。例えば銀行口座であれば、残高という最終値だけを保持するのではなく「1万円入金」「3千円出金」といった一連のトランザクションをすべて保持します。これにより任意の時点の状態を再現できます。

イベントソーシングの主な特徴は以下の通りです。

  • 監査ログの完全性: すべての変更履歴が自動的に残る
  • 時系列の再現: 任意の過去時点のスナップショットを復元できる
  • イベント駆動との親和性: マイクロサービスや非同期処理と組み合わせやすい
  • デバッグの容易さ: 問題発生の原因となったイベントを追跡できる

CQRS(コマンドクエリ責務分離)パターンと組み合わせて使われることが多く、書き込み(コマンド)と読み取り(クエリ)を別々のモデルで扱う大規模システムに適しています。一方、イベントの蓄積によるストレージ増加や、状態を得るための再生コストが課題となることもあります。

使い方・例文

ECサイトの注文管理システムで、「注文作成」「支払い完了」「発送開始」「キャンセル」などの各イベントを時系列に記録することで、任意の注文が現在どの状態にあるかをイベント再生から把握できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語