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
Greg Young - Polyglot Data
Search
Riga Dev Day
January 30, 2015
Programming
1
310
Greg Young - Polyglot Data
Riga Dev Day
January 30, 2015
Tweet
Share
More Decks by Riga Dev Day
See All by Riga Dev Day
Faster Java by Adding Structs (Sort Of)
rigadevday
0
160
Prepare for JDK 9! by Dalibor Topic
rigadevday
0
110
Little Important Things in Distributed Architectures by Andres Jaan Tack
rigadevday
0
120
Oracle 12c for Developers by Alex Nuijten
rigadevday
1
120
The Language of Regular Expressions. So You Think You Can Speak It? by Rustam Mehmandarov
rigadevday
0
68
Modern Java Component Design with Spring 4.3 by Juergen Hoeller
rigadevday
0
230
Open Source and OpenJDK: Do They Deliver? by Simon Ritter
rigadevday
0
60
Google Apps Integration in Oracle Apex by Richard Martens
rigadevday
0
280
Integration Testing from the Trenches by Nicolas Fränkel
rigadevday
0
230
Other Decks in Programming
See All in Programming
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
3
9.7k
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
11
7k
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
16
6.5k
XP, Testing and ninja testing ZOZ5
m_seki
3
790
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
300
品質ワークショップをやってみた
nealle
0
600
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.1k
Introduce Hono CLI
yusukebe
6
3k
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
230
AkarengaLT vol.38
hashimoto_kei
1
110
Devvox Belgium - Agentic AI Patterns
kdubois
1
130
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.3k
Featured
See All Featured
It's Worth the Effort
3n
187
28k
Navigating Team Friction
lara
190
15k
GitHub's CSS Performance
jonrohan
1032
470k
4 Signs Your Business is Dying
shpigford
185
22k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
Why Our Code Smells
bkeepers
PRO
340
57k
How to Ace a Technical Interview
jacobian
280
24k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
KATA
mclloyd
PRO
32
15k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
610
Music & Morning Musume
bryan
46
6.9k
Transcript
Polyglot Data Greg Young
Focus on strategic design first.
None
Purchase Order Line Items (n) Shipping Information
Cart Created 3 Items Added Shipping Informatio n Added
None
Cart Created 3 Items Added 1Item Removed Shipping Informati on
Added
None
Focus on strategic design first.
There is no “best” storage.
Focus on strategic design first.
A single data model is almost never appropriate. 3+ is
common!
Focus on strategic design first.
Focus on strategic design first. Id ParentId Data 1 0
Parent 2 1 Child1 3 1 Child2
Focus on strategic design first. Id ParentId0 ParentId1 ParentId2 ParentId3
ParentId4 Data 1 0 0 0 0 0 Parent 2 1 0 0 0 0 Child1 3 1 2 0 0 0 Child2
Focus on strategic design first. RelationId PersonId PersonId Relation 1
1 0 Parent 2 2 1 Caregiver 3 3 1 Caregiver PersonId Name Type 1 Joe Person 2 Foo llp Company 3 Tom Person
Wrong models cause massive accidental complexity
None
None
None
None
None
Storing Events is a good loss less transactional model Append-Only,
Immutable
Reads/Writes is one form of separation
None
None
None
Time is another form of separation
Client Domain Bus OLAP GraphDb StreamProcessing publish 3nf Hibernate
Client Domain Bus OLAP GraphDb StreamProcessing publish 3nf Hibernate
Client Domain Bus OLAP GraphDb StreamProcessing publish 3nf Hibernate New
Model?
Client Domain Bus OLAP GraphDb StreamProcessing publish 3nf Hibernate New
Model? ?????
Client Domain OLAP GraphDb StreamProcessing Events
Client Domain OLAP GraphDb StreamProcessing Events New Model
Client Domain OLAP GraphDb StreamProcessing Events OLAP OLAP
Wrong models cause massive accidental complexity
None
A queue with infinite history allows new models to easily
be brought online and to synchronize
Storing Events is a good loss less transactional model Append-Only
#FTW
Reads/Writes is one form of separation
There is no “best” storage.
Focus on strategic design first.