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
Learning to Build Distributed Systems the Hard Way
Search
Theo Hultberg
March 05, 2013
Programming
1
140
Learning to Build Distributed Systems the Hard Way
Scandinavian Developer Conference 2013
Theo Hultberg
March 05, 2013
Tweet
Share
More Decks by Theo Hultberg
See All by Theo Hultberg
Datalakes at AWS Summit Stockholm 2018
iconara
0
94
Building a CQL driver
iconara
0
57
Chasing the Elephant
iconara
0
92
Learning to Build Distributed Systems the Hard Way
iconara
2
210
Learning to Build Distributed Systems the Hard Way
iconara
3
5.1k
Concurrency and Distributed Systems in JRuby
iconara
3
660
A Guide to the Post Relational Revolution
iconara
4
5.4k
Standing on the Shoulders of Giants with JRuby
iconara
4
160
Shortcuts Around the Mistakes I've Made Scaling MongoDB
iconara
4
170
Other Decks in Programming
See All in Programming
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
700
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
190
AI Ramen Fight
yusukebe
0
130
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
720
DataformでPythonする / dataform-de-python
snhryt
0
160
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
1.7k
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
250
Workers を定期実行する方法は一つじゃない
rokuosan
0
140
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
130
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
230
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
7
1.8k
ワープロって実は計算機で
pepepper
2
1.2k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
51
8.8k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
22
1.4k
For a Future-Friendly Web
brad_frost
179
9.9k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The World Runs on Bad Software
bkeepers
PRO
70
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Music & Morning Musume
bryan
46
6.7k
It's Worth the Effort
3n
185
28k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Transcript
LEARNING TO BUILD DISTRIBUTED SYSTEMS THE HARD WAY @iconara NEW
and improved!
LEARNING TO BUILD DISTRIBUTED SYSTEMS THE HARD WAY @iconara NEW
and improved!
speakerdeck.com/iconara
Theo / @iconara
chief architect at BURT
FAILURE embrace it
SCALE how hard can it be? let’s worry about that
later.
KNOW YOUR LIMITS who’s the largest customer you could sign?
what would happen if you did?
BALANCE “customer” is a really bad shard key, find something
that distributes evenly & uniformly
SCALE OUT, NOT UP bigger boxes aren’t going to save
you <
START WITH TWO OF EVERYTHING going from one to two
is the hardest, force yourself to solve the scaling problem up front
START WITH TWO OF EVERYTHING you’ll solve the scaling problem,
and need less overcapacity THREE
LIMITS we’ll probably never run out of memory
BACK PRESSURE what happens when the system is working at
full capacity? what happens next?
PRODUCTION = QA production is where the weird shit happens,
can you test production traffic without deploying to production? =
MONOLITHS running all the things on the same box is
really fast. what could ever go wrong? 1:4:9
DECOUPLE UNTIL IT BREAKS moving things to separate services means
that you will be able to scale them independently
PROCESSING & STORAGE separate processing from storage, they almost never
scale together.
SCALE exponential scaling is also scaling, but you want it
as cheaply as possible
SCALE your CFO may not agree that O(2n) = O(n)
GÖTEBORG, DISTRIBUTED @gbgdistr meetup.com/gbgdistributed
KTHXBAI @iconara github.com/iconara architecturalatrocities.com burtcorp.com