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
Berlin 2013 - Session - Ryan Smith
Search
Monitorama
September 19, 2013
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Berlin 2013 - Session - Ryan Smith
Monitorama
September 19, 2013
More Decks by Monitorama
See All by Monitorama
Monitorama PDX 2017 - Ian Bennett
monitorama
1
630
PDX 2017 - Pedro Andrade
monitorama
0
830
PDX 2017 - Roy Rapoport
monitorama
4
1k
PDX 2017 - Julia Evans
monitorama
0
520
Berlin 2013 - Session - Brad Lhotsky
monitorama
5
770
Berlin 2013 - Session - Alex Petrov
monitorama
6
730
Berlin 2013 - Session - Jeff Weinstein
monitorama
2
670
Berlin 2013 - Session - Oliver Hankeln
monitorama
1
600
Berlin 2013 - Session - David Goodlad
monitorama
0
520
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
310
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Optimizing for Happiness
mojombo
378
71k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Navigating Weather and Climate Data
rabernat
0
430
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
RailsConf 2023
tenderlove
30
1.5k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
Predictable Failure Building systems that fail in predictable ways.
Failure is the inability to handle failure.
Southern Airways Flight 242
None
What went wrong • Radar misguided pilots into the storm
• Pilots applied thrust to a stalling engine • Close landing field was not suggested
How will the system fail?
How will Redis fail?
None
British Airways Flight 009
What went wrong • All engines failed • St. Elmos
fire but nothing on the radar • Radio to tower was not 100% • 1st officers oxygen mask broke
What happens when the system fails
No Redundancy - Simple func Query(c Conn, query string) Result
{ return c.DoQuery(query) }
Redundancy - Complex func Query(conns []Conn, query string) Result {
ch := make(chan Result, len(conns)) for _, conn := range conns { go func(c Conn) { ch <- c.DoQuery(query): }(conn) } return <-ch }
Independence
Same function Different implementation
How many redundancies?
A component that just works
Dormant Failures
Don't wait until disaster strikes to find out that Your
secondary RDMS has a full disk
Propagation
Danke! @ryandotsmith