liveBook · Manning

BEAM concurrency

As explained in Elixir in Action, Third Edition

The BEAM concurrency model is the set of abstractions and scheduling rules through which the BEAM virtual machine executes concurrent processes.

BEAM concurrency uses lightweight processes as the primary unit of concurrent work, supporting scalability, fault tolerance, and distribution. Its fine-grained model can assign processes to individual players and game sessions rather than requiring separate operating-system processes. section 5.0 section 1.1.5

The model combines several operational properties:

  • Process isolation limits the impact of individual errors. section 12.2.6
  • Process links propagate failures, while supervisors support recovery and self-healing. section 12.2.6
  • Distribution allows systems to use additional nodes and survive crashes of entire machines. section 12.2.6

BEAM concurrency complements microservices: microservices simplify deployment, horizontal scaling, and coarse-grained fault tolerance, while BEAM processes provide finer-grained responsiveness, vertical scalability, and fault tolerance. section 1.1.5

How Elixir in Action, Third Edition covers it

How deep it goes
Introduces processes, isolation, links, supervisors, and distribution, while deferring lower-level runtime details.
Examples
Uses an online multiplayer game with processes for participating players and game sessions.
What it assumes
Assumes working knowledge of Elixir and functional programming idioms.
What you can do after
Evaluate system designs using process isolation, supervision, distribution, and fine-grained concurrency.
How it connects
Connects processes with fault tolerance, supervisors, distribution, scalability, and microservices.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Elixir in Action, Third Edition. The section links point to the parts of the book it draws on.