Skip to content
0:00 / 0:00

#erlang#otp#self-healing

"Systems that run forever self-heal and scale" by Joe Armstrong (2013)

Strange Loop Conference

88K subscribers • 110 videos on Hallway • Conference channel

YouTube
  • Recommended by 3 people: 2 on Hacker News and 1 on Lobsters.
  • Presented by Joe Armstrong, co-creator of Erlang

Intermediate. Assumes working knowledge.

85K views5 years ago3 recommendations

Distributed systemsSystems programmingConcurrency and parallelismFault tolerance and failureElixir and Erlang

Joe Armstrong outlines the architectural principles of fault-tolerant distributed systems and how Erlang's design supports self-healing and scaling.

How can we build large self-healing scalable systems? In this talk I will outline the architectural principles needed for building scalable fault-tolerant systems. I'll talk about building systems from small isolated parallel components which communicate though well-defined protocols. Programs will have errors in them and will fail so I'll talk about detecting and correcting errors at run-time. Programs will evolve with time, so I'll talk about how they be changed while they are running. I'll talk about Erlang and how it relates to these architectural principles. Joe Armstrong (twitter.com/joeerl) Joe Armstrong is one of the inventors of Erlang. When at the Ericsson computer science lab in 1986, he was part of the team who designed and implemented the first version of Erlang. He has written several Erlang books including Programming Erlang Software for a Concurrent World. Joe held the first ever Erlang course and has taught Erlang to hundreds of programmers and held many lectures and keynotes describing the technology. Joe has a PhD in computer science from the Royal Institute of Technology in Stockholm, Sweden and is an expert in the construction of fault tolerant systems. Joe was the chief software architect of the project which produced the Erlang OTP system. He has worked as an entrepreneur in one of the first Erlang startups (Bluetail) and has worked for 30 years in industry and research.

Why it's here

3 people recommend this

What people say. Highly recommended for understanding the core philosophy of Erlang and building highly reliable, fault-tolerant systems.

seasidedrumon Lobsters • Recommends

"Systems that run forever self-heal and scale" by Joe Armstrong (2013)

POiNTxon Hacker News • Recommends

On “What's special about Erlang and Elixir?”

"Systems that run forever self-heal and scale" by Joe Armstrong (2013) 0 is a great talk too. 0 link to this video

dogleashon Hacker News • Recommends

On “Flawless – Durable execution engine for Rust”

It wasn't a video pitching the language and certainly not drawing any explicit parallels to modern practices. Just something that got me thinking about the distributed concurrency system of erlang for the first time in a decade. Here is a conference talk that is a pitch, if that's what you're looking for: link to this video

u/pthierryin r/functionalprogramming • Mentions

On “What's the benefit of learning Elixir?”

I only used Elixir on hobby projects and I use Haskell in my current team, so maybe someone with more Elixir experience would answer something else, but in my case, Elixir helped me dive into the Actor model and the notion of supervision trees. Haskell's primary tool for quality is encoding invariants in the type system in such a way that most bugs get the compiler to yell at you instead of the program blowing up in the user's face. My takeaway is that Erlang/Elixir's primary tool for quality is to make things always blow up in a controlled, recoverable way. That's a precious idea to learn, IMHO. "Systems that run forever self-heal and scale" by Joe Armstrong (2013)

nickpsecurityon Hacker News • Mentions

On “Ask HN: Best practices for self-healing apps?”

Here's you some examples to learn from. Most are old enough that patents have expired: Why Do Computers Stop and What Can Be Done About It? (1985) link Their NonStop Architecture link QNX's systems are ultra-reliable, too link OpenVMS clusters' uptime was years to decades & mixed CPU ISA's link Systems that run forever and self-heal (Armstrong) link to this video Microreboots link Minix 3: Microkernel-based, self-healing, POSIX OS link

u/SpindleyQin r/ProgrammingLanguages • Mentions

On “Preventing and Handling Panic Situations”

The reason panics are dangerous is because we keep writing huge, brittle, interconnected programs, without any tools to isolate the different components that comprise them. The user-facing consequences of the Linux kernel crashing are catastrophic because the kernel is a monolith. Panicking means \_everything\_ must stop; there's nothing underneath that can possibly recover. Years ago, I worked with QNX, a microkernel OS, and it was no big deal to do things like kill and restart my hard disk driver. My filesystem was just a small collection of totally normal processes, manageable with the same UNIX tools that worked for any other. The only stuff in the kernel was the scheduler, memory allo…