Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜ「Event Sourcing」を選択したのか〜事実に基づくことの重要性〜/Why did...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
株式会社ビットキー / Bitkey Inc.
PRO
March 14, 2025
Technology
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
なぜ「Event Sourcing」を選択したのか〜事実に基づくことの重要性〜/Why did we choose "Event Sourcing"?
株式会社ビットキー / Bitkey Inc.
PRO
March 14, 2025
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
400
Swift&Xcodeのバージョンアップにまつわる怖かった思い出 / Scary Memories of Swift and Xcode Updates
bitkey
PRO
0
190
iOS/Androidの二刀流エンジニアがFlutter & TypeScriptへ越境後の現在地 - Flutterがメインになって見えた景色と現在の醍醐味 / Dual-Platform Mobile Engineer Shifts to Flutter & TypeScript - The View and Real Thrill of Going Flutter-First
bitkey
PRO
0
550
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
500
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
560
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
310
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
340
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
500
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
2
1k
Other Decks in Technology
See All in Technology
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
160
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
540
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
4
1.6k
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
150
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.6k
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
410
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
400
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
260
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
110
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
460
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
100
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
240
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
The Cult of Friendly URLs
andyhume
79
7k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Technical Leadership for Architectural Decision Making
baasie
3
560
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Bash Introduction
62gerente
615
220k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Marketing to machines
jonoalderson
1
5.7k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
Design in an AI World
tapps
1
310
Transcript
© 2025 Bitkey Inc. なぜ「Event Sourcing」を選択したのか 〜事実に基づくことの重要性〜 株式会社ビットキー 佐藤拓人 2025/3/14
2 Copyright © 2025 Bitkey Inc. All right reserved. 目次
1. なぜ Event Sourcing を導入しようと思ったのか? 2. なぜ Event Sourcing が「良い」と思ったのか? 3. 導入してみて感じたこと 4. 今後やりたいこと
3 Copyright © 2025 Bitkey Inc. All right reserved. 自己紹介
佐藤 拓人 Sato Takuto 2015.04 2019.05 2020.01 大学(建築学専攻)卒業後、 株式会社ワークスアプリケーションズに入社 会計システムのソフトウェア開発を担当 特に財務会計の仕訳関連 ビットキーへ参画 ECサイトの開発 / 保守、社内システムの開発 TaKuTyの開発 今のHome事業の前身となるResidenceチームに配属 スマートロックを扱う管理画面やバックエンド、スマ ホアプリの開発に従事 Now Home事業のプロダクト責任者 複雑な事象を読み解いて構造化し、抽象化 / 汎用化で きるように設計し、低コストで多くの価値をだせる開 発をすることを好む
4 Copyright © 2025 Bitkey Inc. All right reserved. 自己紹介
佐藤 拓人 Sato Takuto
5 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか
6 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性
7 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性
8 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています
9 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています
10 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています
11 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています 解錠できるか / できないが コントロールできない ... ↓ 事業リスク
12 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 ※ かなり簡易化した図となっています 状況を適切に把握することが 重要
13 Copyright © 2025 Bitkey Inc. All right reserved. 1.
なぜ Event Sourcing を導入しようと思ったのか プロダクト特性 Event Sourcing
14 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか?
15 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい?
16 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況として 「処理開始」「処理中」「処理完了」 …と管理すればできるかもしれない (雑すぎるかもですが ...)
17 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? でも... 設置状況: 「処理中」 …ってどんな状況?
18 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何?
19 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何? 「処理状況」がどんな状態を 表現するかがソースに 依存してしまう
20 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何? 「処理状況」がどんな状態を 表現するかがソースに 依存してしまう そのうち必要な処理 (実装)が 変わるかもしれない ... ステータスと乖離するかも ...
21 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? 設置状況: 「処理中」 …ってどんな状況? そもそも「設置状況」とは何? 「処理状況」がどんな状態を 表現するかがソースに 依存してしまう そのうち必要な処理 (実装)が 変わるかもしれない ... ステータスと乖離するかも ... 「状態」は現実には存在しない「概念」 そのため移ろいやく そして壊れやすい
22 Copyright © 2025 Bitkey Inc. All right reserved. 2.
なぜ Event Sourcing が「良い」と思ったのか? State管理だと難しい? State管理の課題 (個人的な課題 ) 1. 人によって認識の仕方が異なる 2. 事業のフェーズやドメイン理解が深まることによって、あるべき定義が変わ りやすい 3. 状態の根拠が「ソースコード」になり、変更されやすい
23 Copyright © 2025 Bitkey Inc. All right reserved. 3.
導入してみて感じたこと
24 Copyright © 2025 Bitkey Inc. All right reserved. 3.
導入してみて感じたこと Positive 1. CQRSやデータストアを CQで分離しなくても活用はできた 2. 事実から状態を構築する処理のパフォーマンスは問題なかった 3. 「事実が記録されていること」の安心感はある 4. 設計で新たな「概念」を生み出す必要がないため、事実の整理に注力しや すい 5. 設計の解像度は上がりやすい (…気がする) 6. 関数型と相性が良い (…気がする) 7. 総じて設計のプロセスを簡易化することができそう (...に感じた)
25 Copyright © 2025 Bitkey Inc. All right reserved. 1.
調査では記録した「事実」を確認することもあるが、ログを見た方が早いこと が多かった 2. 事実を記録する …といっても、そもそも実装がミスってて事実が記録されて なかった…みたいなことがあった 3. 事実から現在の状態を構築する処理は複雑化しやすい 4. ドメイン知識 / 制約をどう集約するか …はまだ手探り 3. 導入してみて感じたこと Negative
26 Copyright © 2025 Bitkey Inc. All right reserved. 4.
今後やりたいこと
27 Copyright © 2025 Bitkey Inc. All right reserved. 1.
Query用のデータストアを用意する or Snapshotを記録する 2. Event Sourcingの実装ポリシーを整える 3. 設計プロセスを型化して展開する 4. 今後やりたいこと Next
28 Copyright © 2025 Bitkey Inc. All right reserved. おわり
4. 今後やりたいこと