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.
Wikipedia
Erlang is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system.
Emphasizes functional style and runtime system.
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.
RELATED TERMS
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
- Wikipedia - Erlang (programming language)
- Erlang/OTP - Official Erlang/OTP documentation
- Erlang/OTP - Standard library reference
- RabbitMQ - Erlang requirements for RabbitMQ
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