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
73
Building a CQL driver
iconara
0
49
Chasing the Elephant
iconara
0
75
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
610
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
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
Goのmultiple errorsについて (2024年4月版)
syumai
4
900
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
270
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
800
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
390
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
920
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
650
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
180
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
330
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
PHPはいつから死んでいるかの調査
chiroruxx
1
400
Featured
See All Featured
RailsConf 2023
tenderlove
4
540
Building Applications with DynamoDB
mza
88
5.6k
Web development in the modern age
philhawksworth
202
10k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
We Have a Design System, Now What?
morganepeng
43
6.8k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Statistics for Hackers
jakevdp
789
220k
The Mythical Team-Month
searls
216
42k
What's in a price? How to price your products and services
michaelherold
237
11k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
Building Your Own Lightsaber
phodgson
99
5.7k
How STYLIGHT went responsive
nonsquared
92
4.8k
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