Overview
Explore the principles of building large-scale, self-healing, and scalable systems in this conference talk from Strange Loop 2013. Delve into architectural concepts for creating fault-tolerant systems using small, isolated parallel components that communicate through well-defined protocols. Learn about detecting and correcting runtime errors, evolving programs while they're running, and the role of Erlang in implementing these principles. Gain insights from Joe Armstrong, one of Erlang's inventors, as he shares his expertise in constructing robust distributed systems. Discover key topics such as highly available data, replication strategies, isolation for concurrency, fail-fast approaches, and fault tolerance implications for scalability. Understand how these concepts apply to real-world projects and the challenges of distributed programming.
Syllabus
Intro
Overview
Distributed Programming is hard
Highly available data
Where is my data?
Collect five copies in parallel
Replicas
what happens if the master dies?
Life get a tad tricky
Isolation enables
Concurrency
GRAY
Fail fast
Fail early
ALAN KAY
Erlang
How do we program our six rules?
= Isolation
= Failure detection
fault identification
live code upgrade
Stable storage
Fault tolerance implies scalability
Projects
Taught by
Strange Loop Conference