Skip to content

SYSTEM Cited by 1 source

Erlang VM (BEAM)

BEAM is the virtual machine that runs Erlang and Elixir. On the sysdesign-wiki it shows up as the substrate whose native cluster-computing primitives — distributed Erlang, native code distribution, process introspection — make FLAME + Livebook's notebook-driven elastic GPU workflows possible without reinventing the plumbing.

Why BEAM shows up on this wiki

Fly.io's 2024-09-24 post makes an explicit architectural claim: the reason three engineers could ship Livebook + FLAME in four months part-time, and ship remote dataframes + distributed GC "over a weekend", is that BEAM already provides the primitives these features compose on top of. "Bringing the same functionality to other ecosystems would take several additional months, sometimes accompanied by millions in funding, and often times as part of a closed-source product." (Source: sources/2024-09-24-flyio-ai-gpu-clusters-from-your-laptop-with-livebook)

The load-bearing BEAM primitives behind this wiki's Livebook/FLAME story:

  • Distributed Erlang nodes. Any BEAM process can address any process on any connected node as if it were local. No network library, no explicit RPC framework — the VM does it.
  • Transparent code distribution. Module definitions can be shipped across cluster nodes. Livebook relies on this for its "any module defined in the notebook runs anywhere in the cluster" behaviour — see concepts/transparent-cluster-code-distribution.
  • Native remote introspection. Auto-completion on a Livebook attached to a remote Elixir app comes from the remote node's own module table, exposed through BEAM's introspection primitives.
  • Actor-model concurrency. Lightweight processes with message-passing semantics; see concepts/actor-model for the general concept.

Seen in

Last updated · 200 distilled / 1,178 read