Generated by GPT-5-mini| BEAM (Erlang VM) | |
|---|---|
| Name | BEAM |
| Developer | Ericsson |
| Initial release | 1998 |
| Programming language | C (programming language), Erlang (programming language) |
| Operating system | Unix-like system, Microsoft Windows, macOS |
| Genre | Virtual machine |
| License | Apache License |
BEAM (Erlang VM) BEAM is the virtual machine implementing the runtime for the Erlang (programming language) ecosystem, designed for highly concurrent, fault-tolerant, distributed systems. It originated at Ericsson and has influenced languages and platforms focused on soft real-time and telecom-grade reliability, intersecting with projects and organizations like WhatsApp, Facebook, Heroku, RabbitMQ, and WhatsApp Messenger. BEAM's design emphasizes lightweight processes, preemptive scheduling, and per-process garbage collection, enabling deployment patterns familiar to teams at Telecom Italia, Cisco Systems, and cloud providers such as Amazon Web Services and Google Cloud Platform.
BEAM emerged from research and engineering at Ericsson in the 1990s alongside the evolution of OTP (Open Telecom Platform), influenced by earlier interpreters such as Prolog engines and virtual machines like the JVM and PARC experiments. Key milestones include integration with OTP, adoption by projects at Skype-era companies, and ecosystem growth driven by contributors from Vrije Universiteit Amsterdam, Chalmers University of Technology, and independent developers associated with foundations like the Erlang Ecosystem Foundation. BEAM's trajectory paralleled advances at institutions such as KTH Royal Institute of Technology and was leveraged in deployments for organizations including Deutsche Telekom, Ericsson Research, and startups showcased at events like FOSDEM.
The architecture of BEAM centers on a register-based virtual machine implemented in C (programming language) with a bytecode format executed by a dispatch loop. Its components interact with specifications from RFC-style operational requirements and are organized similarly to systems designed at Bell Labs and research at MIT and Carnegie Mellon University. BEAM's loader, scheduler, and garbage collector interface with libraries and tooling influenced by GNU Compiler Collection, LLVM, and build tools used at Red Hat and Canonical (company). The VM supports hot code swapping, tracing facilities comparable to tools used at Microsoft Research and observability integrations used by Splunk, Datadog, and Prometheus.
BEAM implements extremely lightweight processes mapped to language-level actors rather than OS threads, a model inspired by actor systems researched at Carl Hewitt's work and popularized alongside frameworks like Akka and Microsoft Orleans. Scheduling is preemptive and run-queue based with per-core schedulers resembling designs from Xen Project and Linux kernel task schedulers; work-stealing and load balancing strategies echo research from Intel and AMD multicore studies. Conventions for process linking and monitoring are codified in OTP (Open Telecom Platform), and are used in production by teams at WhatsApp, Ericsson, T-Mobile, and Spotify.
BEAM uses per-process memory heaps with generational and incremental garbage collection strategies that limit pause times, drawing on techniques developed in research at Sun Microsystems and IBM. Each Erlang process has independent heap management, minimizing global stop-the-world events and enabling real-time characteristics sought by vendors like Siemens and Bosch. The GC behavior and tuning parameters are documented in works influenced by teams at University of Cambridge and ETH Zurich, and are monitored in deployments using observability stacks from Grafana and InfluxData.
Built-in concurrency primitives and supervision trees implemented in OTP (Open Telecom Platform) provide structured approaches to fault containment, patterns resonant with designs from Norman Hansen's supervision models and studies at Bell Labs. Supervisors, gen_servers, and supervisors' restart strategies have been adopted in systems at WhatsApp, RabbitMQ, Ericsson, and Nokia, and have influenced resiliency patterns discussed at conferences such as QCon and Strangeloop. The "let it crash" philosophy aligns with operational practices at Amazon's high-availability teams and research groups at University of Illinois Urbana-Champaign.
Beyond the canonical VM from Ericsson, alternative implementations and integrations have appeared in projects collaborating with organizations like Microsoft and research labs at University of California, Berkeley. Integration layers enable native code through NIFs (native implemented functions), ports, and C node interfaces that interoperate with ecosystems such as Node.js, Python (programming language), and Java (programming language) runtimes used by companies including Google, Facebook, and Twitter. Production stacks often combine BEAM with container orchestration platforms like Kubernetes and continuous delivery tools from Jenkins and GitLab.
BEAM excels in soft real-time messaging, telecom, and backend services showcased by deployments at WhatsApp, RabbitMQ, Ericsson, T-Mobile, and Bet365. It performs well for workloads requiring high concurrency, fault isolation, and hot code upgrades, and competes with alternatives such as Go (programming language), Rust (programming language), and Java Virtual Machine-based systems in different operational trade-offs. Benchmarking and tuning reports from teams at Heroku, Discord, Cloudflare, and observability vendors like Datadog inform production choices for latency-sensitive microservices and distributed databases used by institutions such as Goldman Sachs and Deutsche Bank.