Upgrade to Pro — share decks privately, control downloads, hide ads and more …

イベントソーシングとAIの親和性ー物語とLLMに理解できるデータ

 イベントソーシングとAIの親和性ー物語とLLMに理解できるデータ

概要: 最近イベントソーシングとAIの親和性についての言及が増えてきました。どのようにAIコーディングとイベントソーシングが用いられているかの事例や、実際にSekibanとGitHub Copilotを使って、タイムスタンプ付き設計ファイルを使ってどの様にコーディングしているかのライブコーディングを行います。

https://sekiban.connpass.com/event/350481/

『Sekiban イベントソーシング・CQRS 勉強会』について
イベントソーシングは使ってみるととても有用な技術です。ただ、実際に使ってみるためのハードルが高かったり、概念が難しかったりします。当イベント『イベントソーシング・CQRS勉強会』では、言語や技術を問わずイベントソーシングやCQRSの利点や使い方についてみんなでわいわい話せるイベントを目指しています。

イベントソーシングをすでに使っているという方から、ちょっと関心があるという方までご参加いただけるととても嬉しいです。

『イベントソーシング・CQRS勉強会#2』イベント概要
勉強会の第2回では決まったテーマを設けず、第一回で学んだことも踏まえて少し調整して行ってみたいと思います。15分の発表および、5分のLTはフリーテーマでイベントソーシング、CQRSについての自由発表とします。

フレームワークを使ってみた
自前で実装してみた
サンプルコードを作ってみた
イベントソーシング導入の感想
イベントソーシング運用の実際
プログラミングでの注意点
自前のフレームワーク
ES CQRS の本紹介
過去の登壇からの続き、また新たな進捗
オンラインの参加形態は、Metalife を会場にしたカンファレンスにする予定です。Metalife上から登壇のライブストリームに参加できるようにしますのでよろしくお願いします。会場は16:30くらいから19:30くらいまでオープンする予定です。ぜひ前後の時間の雑談や、登壇者などとの情報共有もお楽しみ下さい。

Avatar for Tomohisa Takaoka

Tomohisa Takaoka

May 19, 2025
Tweet

More Decks by Tomohisa Takaoka

Other Decks in Programming

Transcript

  1. 自己紹介 高丘 知央 - Tomohisa Takaoka X: @tomohisa GitHub: @tomohisa

    Works at: 株式会社ジェイテックジャパン、J-Tech Creations, Inc. JTS Group - 株式会社ジャパンテクニカルソフトウェア 品川 CTO: 中小企業の受託開発をモダンな開発スタイルで。イベントソ ーシング、CQRSなどのソフトウェアアーキテクチャに関するコンサ ル業務 Microsoft MVP for Developer Technologies from Nov 2024- OSS: Sekiban - Event Sourcing and CQRS Framework. 2 / 19
  2. 1-1. ジェイテックジャパンの事例 ジェイテックジャパン (Sekiban開発) LLM(Cline + Sonnet 3.7)とイベントソーシング(Sekiban)を組み合わせ開発。 「LLM+イベントは相性がいい。イベントはストーリーだから、コンテキストを LLM、ビジネスオーナー、プログラマにとって理解しやすい」と指摘。

    イベントソーシング+アクターモデルによる新規プロジェクト自動生成に成功。 「イベントソーシングとアクターモデルの組み合わせは、AIプログラミング時代 に最適なアーキテクチャの一つ」とまで言及。 午前11時にアンケートシステム実装開始、午後4時の登壇までに完成。 5 / 19
  3. 1-2. IoCloud Systemsチームの事例 IoCloud Systems (Spider Campos氏、Timur Sharaftinov氏ら) 汎用コード補完AIではDDDやCQRS、ESといった高度なアーキテクチャパターンに 沿ったコード自動生成は難しいと指摘。(IoCloud

    Systems) 解決策として「LLM (GPT)に人間が実装したベストプラクティスのコンポーネント ライブラリを活用させるハイブリッド手法」を提案。(IoCloud Systems) VESA (Vertical Event Sourcing Architecture) ライブラリとAIコードジェネレータ を開発。 「この手法により得られるコードは驚くほど簡潔であり、最新のアーキテクチャ パターンに沿ったエレガントなものになる」と述べる。(IoCloud Systems) https://medium.com/@iocloudsystems/introducing-the-vertical-event-source- architecture-vesa-component-library-part-1-ae95ac106a15 6 / 19
  4. 1-3. Pyloom (OSS) の事例 Pyloom (開発者: Teng Hu氏 元AWS MLエンジニア)

    「Pyloomは状態変化を追跡し…『Git for Agent』を実現し、イベントをリプレイ してLLMエージェントを再構築できる」と説明。(Teng Hu氏) エージェント開発のデバッグ困難という課題をイベントソーシングで解決するフ レームワーク。 イベントソーシングにより、LLMエージェントのデバッグと再現性を向上。 https://github.com/TengHu/pyloom 7 / 19
  5. 2-1. なぜ相性が良いのか?:物語としてのデータ イベントソーシングは「何が起きたか」を時系列で記録する。(Martin Fowler氏) データの変更を永続的なイベントとして記録。 状態はイベントの再生によって導出される。 https://martinfowler.com/eaaDev/EventSourcing.html "We can query

    an application's state to find out the current state of the world, and this answers many questions. However there are times when we don't just want to see where we are, we also want to know how we got there." 「アプリケーションの状態を問い合わせれば、今この世界がどうなっているかは分かります。それだけで解決 する疑問も多いでしょう。しかし、私たちが求めるのは現在地だけでなく、そこに至るまでの道のりを知る ことがあるのです。 」 このイベントの連なりが「物語」となり、LLMが理解しやすい。 「イベントはストーリーだから、コンテキストをLLMにとって理解しやすい」 LLMは文脈や因果関係の理解に優れている。 9 / 19
  6. 2-3. 具体例:倉庫管理システム 集約の設計 倉庫ID、商品IDをキーにした在庫集約。 コマンドの設計 入庫 (GoodsReceived) 出庫 (GoodsShipped) 入庫予約

    (IncomingStockReserved) 出庫予約 (OutgoingStockReserved) 予約キャンセル (ReservationCancelled) 返品 (GoodsReturned) これらのコマンドがイベントとして記録される。 11 / 19
  7. 3-1. LLMへの指示 (例) あなたはC# とSekiban フレームワークのエキスパートです。 以下の仕様で倉庫管理システムのイベントソーシングモデルを実装してください。 アグリゲート名: InventoryItem イベント:

    - GoodsReceived ( 商品ID, 数量, 日付) - GoodsShipped ( 商品ID, 数量, 日付) - IncomingStockReserved ( 商品ID, 数量, 予約ID, 日付) - OutgoingStockReserved ( 商品ID, 数量, 予約ID, 日付) - ReservationCancelled ( 商品ID, 予約ID, 日付) - GoodsReturned ( 商品ID, 数量, 理由, 日付) コマンドハンドラとアグリゲートのロジックも実装してください。 14 / 19