採択 2021/11/21 16:00〜 Track D (#jjug_ccc_d) Video:15min + Live:10min

巨大なトランザクションを分解せよ!イベント駆動入門 in Spring Framework JJUG CCC 2021 Fall

11
nrslib 成瀬 允宣 nrslib

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Cloud / JVM / DevOps / Tools / Community / Others]: Java SE
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: No

Abstract:
はじめはコンパクトであったビジネスロジックも、長く運用が続けられると様々な要求が突き付けられ、次第に複雑な処理を行わざるを得なくなるときが訪れます。
そんなとき、一切の考慮もせず、単純にコードを伸ばしていくと、トランザクションの範囲が無秩序に広がってしまうことがあります。
巨大なトランザクションは容易に競合を発生させ、ロックを引き起こし、ソフトウェアの性能を低下させます。
トランザクションは可能な限り小さいサイズに抑えるべきなのです。

そこで、本トークでは巨大なトランザクションを最小限に分解して、ロックの可能性を少しでも減らす方法として、イベントを用いたイベント駆動によるトランザクションの分解についてコードベースで解説します。

なお、サンプルコード全体の構成はドメイン駆動設計のパターンを意識した形で、アーキテクチャは ADOP ないしヘキサゴナルアーキテクチャをベースとします。
Spring Framework が用意しているドメイン駆動設計のパターンを意識したモジュールを利用しますので、ドメイン駆動設計を採用したいと考えている開発者にもお勧めの内容です。
「リポジトリ」や「集約」といったトピックに対する予備知識があるとより楽しめるでしょう。