
Programming Erlang by Joe Armstrong Review
4.5 / 5
Overall Rating

Programming Erlang: Software for a Concurrent World (Pragmatic Programmers)
Programming Erlang by Joe Armstrong is the canonical book on the actor model and fault-tolerant systems. Here is whether modern developers should still read it.
Check PriceWe may earn a commission if you make a purchase through our links.
TL;DR
Programming Erlang: Software for a Concurrent World by Joe Armstrong is the foundational text on Erlang, OTP, and the actor model that underpins WhatsApp, RabbitMQ, and Discord's voice infrastructure. Even if you never ship Erlang in production, the mental models it teaches about concurrency and fault tolerance are worth their weight in gold.
Why It Matters
Most concurrency books teach threads, locks, and pain. Armstrong — who literally co-created Erlang at Ericsson to run telephone switches with nine-nines uptime — teaches a different model: lightweight processes, message passing, and 'let it crash.' That model now shows up in Elixir, Akka, Orleans, and effectively every modern actor framework.
Key Specs
- Author: Joe Armstrong (Pragmatic Bookshelf)
- Latest edition: 2nd edition
- Pages: ~550
- Format: Paperback, ebook
- Audience: Backend, distributed-systems, and infrastructure engineers
- Topics: Sequential Erlang, processes, OTP, supervision trees, distributed Erlang
Pros
- Written by the language's co-creator — voice and authority you cannot fake.
- Best practical introduction to the actor model anywhere.
- Strong coverage of OTP, supervisors, and the 'let it crash' philosophy.
- Examples are small enough to follow and big enough to be useful.
- Concepts transfer cleanly to Elixir, Akka, and other actor systems.
Cons
- Erlang syntax is unusual; expect a learning curve if you come from C-family languages.
- Tooling discussions feel dated — the modern Erlang/Elixir ecosystem has moved on.
- Some examples are pre-modern by today's standards.
- Long if you only want the philosophy and not the implementation details.
Who It's For
Backend engineers building distributed systems, anyone moving into Elixir or Phoenix who wants the BEAM-level intuition, and developers who keep getting burned by thread-based concurrency. Also a great read for senior engineers designing fault-tolerant architectures in any language.
How to Use It
Work through Part I to internalize sequential Erlang, then spend serious time on Part II (concurrency) and Part III (OTP). Build a small supervised application — a chat server or a job queue — alongside the book. The lessons stick when you crash a worker on purpose and watch the supervisor restart it.
How It Compares
Versus Designing for Scalability with Erlang/OTP (Cesarini & Vinoski), Armstrong is more philosophical and Cesarini is more rigorously OTP-focused. Versus Programming Elixir (Thomas), Armstrong gives you the BEAM mental model that makes Elixir click. Read Armstrong first, then pick a modern follow-up.
Bottom Line
Programming Erlang is one of the most influential systems-programming books of the last 20 years. Even in 2026, the lessons on processes, supervision, and 'let it crash' make it required reading for anyone serious about reliable, distributed software.
No spam. Unsubscribe anytime.
Affiliate Disclosure
Discussion
Sign in with GitHub to leave a comment. Your replies are stored on this site's public discussion board.



