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
89
Building a CQL driver
iconara
0
51
Chasing the Elephant
iconara
0
87
Learning to Build Distributed Systems the Hard Way
iconara
2
200
Learning to Build Distributed Systems the Hard Way
iconara
3
5.1k
Concurrency and Distributed Systems in JRuby
iconara
3
640
A Guide to the Post Relational Revolution
iconara
4
5.4k
Standing on the Shoulders of Giants with JRuby
iconara
4
150
Shortcuts Around the Mistakes I've Made Scaling MongoDB
iconara
4
160
Other Decks in Programming
See All in Programming
Носок на сок
bo0om
0
1.5k
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
yuisakamoto
4
230
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
0
140
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
170
事業KPIを基に価値の解像度を上げる
nealle
0
160
TypeScriptのmoduleオプションを改めて整理する
bicstone
4
130
ビカム・ア・コパイロット
ymd65536
1
170
複雑なフォームを継続的に開発していくための技術選定・設計・実装 #tskaigi / #tskaigi2025
izumin5210
10
2.7k
LRパーサーはいいぞ
ydah
7
1.5k
データベースの技術選定を突き詰める ~複数事例から考える最適なデータベースの選び方~
nnaka2992
3
3k
Doma で目指す ORM 最適解
nakamura_to
1
130
開発者フレンドリーで顧客も満足?Platformの秘密
algoartis
0
250
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
523
40k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Gamification - CAS2011
davidbonilla
81
5.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
Fireside Chat
paigeccino
37
3.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
KATA
mclloyd
29
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Done Done
chrislema
184
16k
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