Slide 1

Slide 1 text

© 2025 Bitkey Inc. なぜ「Event Sourcing」を選択したのか 〜事実に基づくことの重要性〜 株式会社ビットキー 佐藤拓人 2025/3/14

Slide 2

Slide 2 text

2 Copyright © 2025 Bitkey Inc. All right reserved. 目次 1. なぜ Event Sourcing を導入しようと思ったのか? 2. なぜ Event Sourcing が「良い」と思ったのか? 3. 導入してみて感じたこと 4. 今後やりたいこと

Slide 3

Slide 3 text

3 Copyright © 2025 Bitkey Inc. All right reserved. 自己紹介 佐藤 拓人 Sato Takuto 2015.04 2019.05 2020.01 大学(建築学専攻)卒業後、 株式会社ワークスアプリケーションズに入社 会計システムのソフトウェア開発を担当 特に財務会計の仕訳関連 ビットキーへ参画 ECサイトの開発 / 保守、社内システムの開発 TaKuTyの開発 今のHome事業の前身となるResidenceチームに配属 スマートロックを扱う管理画面やバックエンド、スマ ホアプリの開発に従事 Now Home事業のプロダクト責任者 複雑な事象を読み解いて構造化し、抽象化 / 汎用化で きるように設計し、低コストで多くの価値をだせる開 発をすることを好む

Slide 4

Slide 4 text

4 Copyright © 2025 Bitkey Inc. All right reserved. 自己紹介 佐藤 拓人 Sato Takuto

Slide 5

Slide 5 text

5 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか

Slide 6

Slide 6 text

6 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性

Slide 7

Slide 7 text

7 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性

Slide 8

Slide 8 text

8 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています

Slide 9

Slide 9 text

9 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています

Slide 10

Slide 10 text

10 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています

Slide 11

Slide 11 text

11 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています 解錠できるか / できないが コントロールできない ... ↓ 事業リスク

Slide 12

Slide 12 text

12 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています 状況を適切に把握することが 重要

Slide 13

Slide 13 text

13 Copyright © 2025 Bitkey Inc. All right reserved. 1. なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 Event Sourcing

Slide 14

Slide 14 text

14 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか?

Slide 15

Slide 15 text

15 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい?

Slide 16

Slide 16 text

16 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況として 「処理開始」「処理中」「処理完了」 …と管理すればできるかもしれない (雑すぎるかもですが ...)

Slide 17

Slide 17 text

17 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? でも... 設置状況: 「処理中」 …ってどんな状況?

Slide 18

Slide 18 text

18 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何?

Slide 19

Slide 19 text

19 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何? 「処理状況」がどんな状態を 表現するかがソースに 依存してしまう

Slide 20

Slide 20 text

20 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何? 「処理状況」がどんな状態を 表現するかがソースに 依存してしまう そのうち必要な処理 (実装)が 変わるかもしれない ... ステータスと乖離するかも ...

Slide 21

Slide 21 text

21 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何? 「処理状況」がどんな状態を 表現するかがソースに 依存してしまう そのうち必要な処理 (実装)が 変わるかもしれない ... ステータスと乖離するかも ... 「状態」は現実には存在しない「概念」 そのため移ろいやく そして壊れやすい

Slide 22

Slide 22 text

22 Copyright © 2025 Bitkey Inc. All right reserved. 2. なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? State管理の課題 (個人的な課題 ) 1. 人によって認識の仕方が異なる 2. 事業のフェーズやドメイン理解が深まることによって、あるべき定義が変わ りやすい 3. 状態の根拠が「ソースコード」になり、変更されやすい

Slide 23

Slide 23 text

23 Copyright © 2025 Bitkey Inc. All right reserved. 3. 導入してみて感じたこと

Slide 24

Slide 24 text

24 Copyright © 2025 Bitkey Inc. All right reserved. 3. 導入してみて感じたこと Positive 1. CQRSやデータストアを CQで分離しなくても活用はできた 2. 事実から状態を構築する処理のパフォーマンスは問題なかった 3. 「事実が記録されていること」の安心感はある 4. 設計で新たな「概念」を生み出す必要がないため、事実の整理に注力しや すい 5. 設計の解像度は上がりやすい (…気がする) 6. 関数型と相性が良い (…気がする) 7. 総じて設計のプロセスを簡易化することができそう (...に感じた)

Slide 25

Slide 25 text

25 Copyright © 2025 Bitkey Inc. All right reserved. 1. 調査では記録した「事実」を確認することもあるが、ログを見た方が早いこと が多かった 2. 事実を記録する …といっても、そもそも実装がミスってて事実が記録されて なかった…みたいなことがあった 3. 事実から現在の状態を構築する処理は複雑化しやすい 4. ドメイン知識 / 制約をどう集約するか …はまだ手探り 3. 導入してみて感じたこと Negative

Slide 26

Slide 26 text

26 Copyright © 2025 Bitkey Inc. All right reserved. 4. 今後やりたいこと

Slide 27

Slide 27 text

27 Copyright © 2025 Bitkey Inc. All right reserved. 1. Query用のデータストアを用意する or Snapshotを記録する 2. Event Sourcingの実装ポリシーを整える 3. 設計プロセスを型化して展開する 4. 今後やりたいこと Next

Slide 28

Slide 28 text

28 Copyright © 2025 Bitkey Inc. All right reserved. おわり 4. 今後やりたいこと