The Erlang VM is commonly known as BEAM (Bogdan/Björn's Erlang Abstract Machine). It was designed to run highly-reliable systems that usually have many nines of availability, and are pretty much always able to respond to client requests. We will now look at some of the design decisions behind the BEAM, and how they enable the creation and deployment of such systems.
A process is the unit of concurrent execution inside the BEAM. As we will see throughout this chapter, they are the building block that enables the creation of scalable, robust, fault-tolerant systems. Before diving into some runtime considerations for using processes, let's explore how processes interact with one another.
There's much discussion about whether the BEAM is a legitimate implementation of the actor model, as described by Carl Hewitt in the 1970s. Robert Virding, a co...