100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Erlang

Originally developed at Ericsson

AdvancedLanguage5K learners

Erlang is a functional, concurrent programming language designed for building massively fault-tolerant, distributed, real-time systems, originally created for telecommunications switching systems.

Definition

Erlang is a functional, concurrent programming language designed for building massively fault-tolerant, distributed, real-time systems, originally created for telecommunications switching systems.

Overview

Erlang was developed at Ericsson in the mid-1980s to power telecommunications switches that needed to run continuously with extremely high reliability, tolerating failures without dropping calls or requiring restarts. That original requirement shaped everything about the language: Erlang processes are lightweight, isolated, and communicate only via message passing, so a crash in one process cannot directly corrupt or crash another. Erlang runs on the BEAM virtual machine, which schedules potentially millions of lightweight, independent processes and supports "let it crash" fault tolerance — supervisor processes automatically detect and restart failed components rather than requiring defensive error-handling code everywhere. This model, combined with built-in support for distributed systems and hot code swapping (updating running code without downtime), made Erlang exceptionally well suited to systems requiring near-continuous uptime. Erlang's most famous real-world proof point is WhatsApp, which handled enormous concurrent messaging loads with a comparatively small engineering team, largely credited to Erlang's concurrency model. Elixir, a newer language that also runs on the BEAM VM, has since become a more popular entry point to this ecosystem, but Erlang itself remains actively used in telecommunications, messaging platforms, and other systems where fault tolerance and massive concurrency are non-negotiable requirements. It is often mentioned alongside Concurrency in this space. It is often mentioned alongside Functional Programming in this space.

Key Features

  • Lightweight, isolated processes communicating via message passing
  • "Let it crash" fault-tolerance model with supervisor-based recovery
  • Runs on the BEAM virtual machine supporting massive concurrency
  • Hot code swapping for zero-downtime deployments
  • Built-in support for distributed, multi-node systems
  • Functional programming with pattern matching and immutability

Use Cases

Telecommunications switching and signaling systems
Massively concurrent real-time messaging platforms
Distributed systems requiring near-continuous uptime
Financial and payment systems needing fault tolerance
IoT platforms managing large numbers of concurrent connections

Frequently Asked Questions