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
株式会社ビットキー / 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.
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
430
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
260
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
250
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
440
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
2
890
Flutter初心者が生成AIで大規模アプリ開発をキャッチアップした工夫 〜元ネイティブエンジニアが実践した、技術転換の高速道路〜 / Flutter with LLM: A Former Native Engineer's Fast Track to Large-Scale Apps
bitkey
PRO
0
310
〜備えあれば憂いなし〜とりあえず障害訓練やろ? デジタル/フィジカル横断プロダクトを24365で維持するための戦略 / Better Safe Than Sorry: Incident Drills for 24/365 Digital-Physical Products
bitkey
PRO
0
170
雑談は、センサーだった
bitkey
PRO
2
550
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.6k
Other Decks in Technology
See All in Technology
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
330
AI Driven AI Governance
pict3
0
250
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
12
1.8k
Baseline対応のDOMの型定義を作った
uhyo
3
720
記録をかんたんに、提案をパーソナルに ── AIであすけんが目指すもの
oprstchn
0
170
どうして今サーバーサイドKotlinを選択したのか
nealle
0
210
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5k
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
250
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
1
2.6k
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
0
1.8k
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
1.6k
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
560
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
640
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Mind Mapping
helmedeiros
PRO
1
280
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Building Applications with DynamoDB
mza
96
7.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
It's Worth the Effort
3n
188
29k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How to Talk to Developers About Accessibility
jct
2
280
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
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. 今後やりたいこと