Graph
Erlang

⚙️Erlang

NEW

A functional, concurrent programming language and runtime for building distributed, fault-tolerant, soft real-time systems.

DESCRIPTION

Erlang and its OTP framework target highly available systems using lightweight processes and message passing on the BEAM VM. Supervision trees and hot code upgrades enable resilience and uptime. The runtime’s concurrency model simplifies distributed services. Telecom origins shaped its reliability and latency goals. Modern use spans messaging platforms, databases, and scalable microservices.

ALTERNATIVE DEFINITIONS

Erlang/OTP

Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability.

Highlights scalability, soft real-time, and high availability.

Source

Wikipedia

Erlang is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system.

Emphasizes functional style and runtime system.

Source

Learn You Some Erlang

Erlang was designed to produce systems that are easy to scale and maintain, with fault-tolerance built into the language and runtime.

Points to built-in fault tolerance and maintainability.

Source

BEAM VM One-Time Pad Actor Model Concurrency Durability (ACID) Distributed Systems Message Passing Supervision Trees Microservices

COMPETING TERMS

Elixir Go

KNOWLEDGE AREAS

Programming Languages Software Engineering Real-time & Streaming Data Infrastructure

TARGET AUDIENCE

Software Developer Software Architect DevOps Engineer Cloud Architect Data Engineer

EXTERNAL SOURCES

TOP QUESTIONS

What makes Erlang suitable for high-availability systems?

Lightweight processes, supervision trees, and message passing provide isolation and fault recovery with minimal downtime.

Category: Relevancy

How does Erlang’s concurrency differ from threads?

Erlang uses lightweight processes managed by the VM, communicating via message passing, avoiding shared-memory locks.

Category: Distinction

What is OTP in Erlang?

OTP is a framework of libraries and design principles for building resilient Erlang applications, including supervisors and gen servers.

Category: Overview

What are common mistakes when adopting Erlang?

Underusing OTP patterns, mixing shared state, and ignoring supervision design lead to brittle systems.

Category: Mistakes

What is currently a hot topic around Erlang?

Interoperability with Elixir and leveraging BEAM for distributed microservices and messaging systems remains popular.

Category: Topic

How does Erlang compare to Go for concurrency?

Erlang emphasizes actor-style processes and fault tolerance; Go uses goroutines and channels with shared-memory considerations.

Category: Distinction

Where is Erlang widely used?

Telecom systems, messaging brokers like RabbitMQ, and scalable chat platforms highlight its strengths.

Category: Example

What is a risk when scaling Erlang systems?

Poor supervision hierarchy or uncontrolled process spawning can strain schedulers and memory.

Category: Risks

How to start learning Erlang?

Follow official docs and ‘Learn You Some Erlang,’ then build small OTP-based services to practice supervision patterns.

Category: Overview