February 2026

The Zen of Erlang

post

ferd.ca · February 2016

  • Explains how OTP supervision trees encode recovery strategies as explicit architectural decisions, not afterthought error handling
  • Distinguishes between errors (expected, handle inline) and failures (unexpected, let the process crash and restart clean)
  • “Let it crash” requires pre-planned supervision hierarchies — the crash is intentional, not accidental

Elixir Programming Language

project

elixir-lang.org · 2012

  • Functional language built on the BEAM that adds modern ergonomics (macros, protocols, mix tooling) without sacrificing Erlang’s runtime guarantees
  • Processes are the unit of isolation and concurrency — each is a lightweight actor with its own heap, communicating only through message passing
  • The language design enforces the “let it crash” philosophy by making processes cheap and supervision trees idiomatic

Phoenix Framework

framework

phoenixframework.org · 2014

  • Web framework for Elixir that exploits BEAM’s concurrency model to handle massive numbers of persistent connections (channels, LiveView)
  • LiveView eliminates the SPA/API split by rendering server-side HTML and pushing diffs over WebSockets — real-time UIs without JavaScript frameworks
  • Each request and each WebSocket connection runs in its own BEAM process, inheriting fault isolation and preemptive scheduling for free

Making Reliable Distributed Systems in the Presence of Software Errors

paper

Joe Armstrong, PhD Thesis · December 2003

  • Joe Armstrong’s PhD thesis defining the principles behind Erlang/OTP: concurrency-oriented programming, process isolation, and error recovery through supervision
  • Argues that reliable systems must be built from unreliable components by isolating failures and encoding recovery strategies declaratively
  • Introduces the six rules of Erlang: isolation, everything is a process, error detection across processes, fault detection is built-in, processes can be upgraded, and failures are handled by other processes

The BEAM Book

project

GitHub · 2017

  • Deep dive into BEAM virtual machine internals: schedulers, memory management, garbage collection, and the process model
  • Explains how the BEAM achieves soft real-time properties through preemptive scheduling based on reduction counts, not time slices
  • Essential reference for understanding why BEAM processes are cheap (< 1KB initial heap) and how the VM enables millions of concurrent processes

Erlang: The Movie (1990)

talk

YouTube / Ericsson · 1990

  • Ericsson’s original promotional video for Erlang, demonstrating live telephony system upgrades without dropping calls
  • Shows hot code swapping in action — a running telecom switch is updated mid-call, seamlessly transferring to new modules
  • A time capsule of the problems that shaped BEAM’s design: five-nines uptime, concurrent call handling, and zero-downtime deployments