Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
なぜ「Event Sourcing」を選択したのか〜事実に基づくことの重要性〜/Why did...
Search
株式会社ビットキー / Bitkey Inc.
PRO
March 14, 2025
Technology
1.6k
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
460
Swift&Xcodeのバージョンアップにまつわる怖かった思い出 / Scary Memories of Swift and Xcode Updates
bitkey
PRO
0
230
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
650
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
580
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
650
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
390
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
360
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
540
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
2
1.1k
Other Decks in Technology
See All in Technology
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
140
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
170
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
330
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
410
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
180
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.3k
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
290
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
320
Kiro Crewをはじめよう
kizawa2020
1
130
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1.1k
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.3k
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
350
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
KATA
mclloyd
PRO
35
16k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
400
Automating Front-end Workflow
addyosmani
1369
210k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Visualization
eitanlees
153
17k
First, design no harm
axbom
PRO
2
1.3k
Deep Space Network (abreviated)
tonyrice
0
360
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
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. 今後やりたいこと