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
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
150
メルペイ 会計システム概要と歴史
mewuto
0
200
12 個 Tool と、 4,096 Token
hlum
0
120
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
350
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
320
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.3k
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
410
継続的なAIコスト最適化
bgpat
1
280
しろおびから始める!ログ活用の第一歩
shumei_ito
0
870
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
180
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
580
Codex概要
ymiya55
0
500
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
How to train your dragon (web standard)
notwaldorf
96
6.9k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
740
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.3k
Side Projects
sachag
456
43k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Documentation Writing (for coders)
carmenintech
77
5.6k
Code Review Best Practice
trishagee
74
20k
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. 今後やりたいこと