Masanobu Naruse
プログラマ。
テックリードとしてソフトウェア開発に従事するほか、大学講師活動や小学校プログラミング教育に携わる。
また、カンファレンス等でソフトウェア開発・設計を主軸に講演活動を行っている。
著書『ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本』
Session
本トークではイベントソーシングの概念や利点をお話するのと同時に、Pythonにおけるイベントソーシングに挑戦した結果を共有します。
私は普段、JVM でイベントソーシングをベースとしたマイクロサービス群の開発に取り組んでいます。
イベントソーシングはシステム上の出来事をイベントとして永続化することでシステムを構築する手法です。
システムをイベントでとらえることは多くの利点をもたらします。
ひとつ分かりやすい例を挙げるとすれば、システムの全ての状態変化を時間を追って追跡することが可能となることが挙げられます。
たとえば、何らかの問題が発生した場合には、発生したイベントのシーケンスをたどることで問題の原因を容易に特定できます。
ちょうどGitのログをたどるのと同じイメージです。
これはシステムの運用を確実に楽にします。
その他にもイベントデータはシステム間の連携を疎結合にしますし、永続化されたイベントデータを利用して、あとからBIツールと連携するといった芸当も可能です。
本トークではそのように便利なイベントソーシングの基本原理やメリットなどをお話しし、またイベントソーシングを実践する上で諸問題への回答となる各種機能について網羅して解説します。
また、それらの前提を共有した上で、現時点で Python における実装に挑戦した結果を紹介し、実践にむけて越えなくてはいけないハードル=「Python で現状実現できてないこと」について探ります。