Building on the BEAM: Exploring Erlang and Elixir, Part 1 with Shawn McCool
Shawn McCool joins us to explore the unique and powerful world of Erlang and Elixir. With 27 years of industry experience spanning system administration, web development, payment processing systems, and conference organisation (including DDD Europe) - Shawn shares how discovering Erlang changed his perspective on building distributed systems.
We dive deep into what makes Erlang and the BEAM virtual machine special, exploring how its process-based concurrency model and “let it crash” philosophy enable building highly reliable systems. Shawn explains how Erlang’s origins in telecom shaped its design for handling millions of concurrent connections with near real-time guarantees.
Topics include:
- The BEAM virtual machine as an operating system for concurrent processes
- Process isolation, lightweight concurrency, and the actor model
- Message passing between processes and how it differs from shared state
- Supervision trees and the “let it crash” philosophy of error handling
- How process-level garbage collection enables consistent performance
- Hot code upgrades and zero-downtime deployments
- The difference between concurrency and parallelism
- Testing approaches for concurrent systems and processes
Throughout the episode, Shawn demonstrates how Erlang and Elixir’s unique approach fundamentally changes how we think about building systems, from state management to error handling, making certain patterns natural and elegant that would be impractical or complex in traditional object-oriented languages.
This is Part 1 of a 2-part series. In Part 2, we’ll explore the Elixir ecosystem, including Phoenix, Ecto, Nx, Nerves, and AI development tools.
Show Links
- Shawn McCool’s Website
- Shawn McCool on X/Twitter
- Shawn McCool on Bluesky
- Shawn McCool’s Elixir/Erlang Learning Resources
- Erlang
- Elixir
- Erlang: The Movie
- Learn You Some Erlang
- Making Reliable Distributed Systems in the Presence of Software Errors
- Erlang Documentation - Processes
- Erlang Documentation - Distributed Programming
- Actor Model (Wikipedia)
- Waterpark: Transforming Healthcare with Distributed Actors
- Gleam Programming Language
- Domain-Driven Design Europe Conference
- Active Record: How We Got Persistence Perfectly Wrong
- EventSourcery
