本トークではイベントソーシングライブラリを使わずにイベントソーシングを実現したコードをベースに解説することで、その基本動作原理をわかりやすくお伝えします。
イベントソーシングはシステム上の出来事をイベントとして永続化することでシステムを構築する手法です。
システムをイベントでとらえることは伝統的なステートソーシングに比べて、多くの利点をもたらします。
たとえば、システムの全ての状態変化を時間を追って追跡することが可能となることはひとつの利点です。
何らかの問題が発生した場合には、発生したイベントのシーケンスをたどることで問題の原因を容易に特定できます。
ちょうどGitのログをたどるのと同じイメージです。
この特性はシステムの運用を確実に楽にします。
その他にもイベントデータはシステム間の連携を疎結合にします。
また、永続化されたイベントデータを利用して、あとからBIツールと連携するといった芸当も可能です。
このように便利なイベントソーシングをベースにして、システムを構築する場合、多くはイベントソーシングライブラリを活用することになります。
イベントソーシングライブラリを活用すると、深くその仕組みを理解せずとも扱うことができます。
しかしながら、こういった動作原理を覚えておくことは有用です。
動作原理を学ぶのに手っ取り早い方法は自前で実装してしまうことです。
そこで、本トークではイベントソーシングライブラリを使わずに実装した例をもとに、その動作原理を深堀りし、イベントソーシングに求められる要件などについてお話します。
本トークにより、イベントソーシングに対するイメージがブラックボックスではなく、身近なものとしてシステム開発のお供になれば幸いです。