A code-free presentation about the core principles and philosophies of
Erlang, explaining how the whole is greater than the sum of its parts.
This presentation takes a perspective rooted in showing the reasoning
between each of the building blocks (message-passing, isolated
processes, links and monitors, and so on), and shows how they can be
assembled together to create larger systems where interactions between
subsystems take a front seat in defining the fault tolerance of these
systems.
14. 14
REPEATABLE TRANSIENT
CORE FEATURE EASY HARD
SECONDARY
FEATURE
EASY, OFTEN
OVERLOOKED
HARD
Why restarting works
EASE OF FINDING BUGS IN DEVELOPMENT
15. 15
REPEATABLE TRANSIENT
CORE FEATURE SHOULD NEVER ALL THE TIME
SECONDARY
FEATURE
PRETTY OFTEN ALL THE TIME
Why restarting works
BUGS THAT HAPPEN IN PRODUCTION
17. 17
“I LIKE STATICALLY TYPED
LANGUAGES, AND I RESTART MY
DAEMON AFTER UNHANDLED
EXCEPTIONS. WHAT IS ERLANG
GONNA WIN ME ON FAULT
TOLERANCE?”
- FORUM USER “Notorious b.s.d.”
18. 18
ROOT
TALLY
DISTRICT
QUEBEC ONTARIO …
COUNT OCR
C_OCR
WORKER
POOL
STORAGE
CACHE
POOL
WORKER
POOL
WORKER
POOL
WORKER
WEB
SERVER
LIVE
REPORTS
SESSIONS
…
WEB
WORKER
WEB
WORKER
WEB
WORKER
SUPERVISION TREES
19. 19
ROOT
TALLY
DISTRICT
QUEBEC ONTARIO …
COUNT OCR
C_OCR
WORKER
POOL
STORAGE
CACHE
POOL
WORKER
POOL
WORKER
POOL
WORKER
WEB
SERVER
LIVE
REPORTS
SESSIONS
…
WEB
WORKER
WEB
WORKER
WEB
WORKER
SUPERVISION TREES
20. 20
ROOT
TALLY
DISTRICT
QUEBEC ONTARIO …
COUNT OCR
C_OCR
WORKER
POOL
STORAGE
CACHE
POOL
WORKER
POOL
WORKER
POOL
WORKER
WEB
SERVER
LIVE
REPORTS
SESSIONS
…
WEB
WORKER
WEB
WORKER
WEB
WORKER
SUPERVISION TREES
REPORT_APP
TALLY_APP
STORAGE_APP