PyCon JP 2024

Pythonによるイベントソーシングへの挑戦と現状に対する考察
09-28, 14:20–14:50 (Asia/Tokyo), 20F Track2

本トークではイベントソーシングの概念や利点をお話するのと同時に、Pythonにおけるイベントソーシングに挑戦した結果を共有します。

私は普段、JVM でイベントソーシングをベースとしたマイクロサービス群の開発に取り組んでいます。
イベントソーシングはシステム上の出来事をイベントとして永続化することでシステムを構築する手法です。
システムをイベントでとらえることは多くの利点をもたらします。

ひとつ分かりやすい例を挙げるとすれば、システムの全ての状態変化を時間を追って追跡することが可能となることが挙げられます。
たとえば、何らかの問題が発生した場合には、発生したイベントのシーケンスをたどることで問題の原因を容易に特定できます。
ちょうどGitのログをたどるのと同じイメージです。
これはシステムの運用を確実に楽にします。

その他にもイベントデータはシステム間の連携を疎結合にしますし、永続化されたイベントデータを利用して、あとからBIツールと連携するといった芸当も可能です。

本トークではそのように便利なイベントソーシングの基本原理やメリットなどをお話しし、またイベントソーシングを実践する上で諸問題への回答となる各種機能について網羅して解説します。
また、それらの前提を共有した上で、現時点で Python における実装に挑戦した結果を紹介し、実践にむけて越えなくてはいけないハードル=「Python で現状実現できてないこと」について探ります。


Why did you choose this topic?

イベントソーシングは多くのシステム開発を楽にするアイデアです。
世の中は実は、現在の状態でとらえるのでなく、できごとの連鎖としてとらえる方が自然に表現できることが多いです。
システムにおける複雑さは現実の複雑さに起因します。
この複雑さをシンプルに表現する手段のひとつとして皆さんにイベントソーシングという手法を知ってほしいと考えています。

Knowledges and know-how the audience can get from your talk

・イベントソーシングに関する基本原理
・イベントソーシングのメリット
・イベントソーシングを実践するにあたって求められる機能
・複数システム連携におけるイベントソーシングの効能
・Pythonによるイベントソーシング実装の現在の解答例

Prior knowledges speakers assume the audience to have

・一般的なビジネスロジックの実装知識
・RDBを用いた実装知識

Audience experiment

Intermediate

Language of presentation

日本語

Language of presentation material

日本語

プログラマ。
テックリードとしてソフトウェア開発に従事するほか、大学講師活動や小学校プログラミング教育に携わる。
また、カンファレンス等でソフトウェア開発・設計を主軸に講演活動を行っている。
著書『ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本』