Erlang — это функциональный язык программирования и среда выполнения, разработанные для создания распределённых, отказоустойчивых и масштабируемых систем с требованиями высокой доступности. Язык был спроектирован с упором на лёгкость параллельного программирования, встроенные средства обработки ошибок и горячую замену кода в работающих системах. Среда выполнения включает виртуальную машину, библиотеку стандартных модулей и набор инструментов для разработки и управления распределёнными приложениями.
Основные концепции Erlang включают акторную модель процессов с лёгковесными изолированными процессами, обмен сообщениями без общего состояния, супервизорную иерархию для автоматического восстановления при сбоях и прозрачную поддержку распределённости. Благодаря этим особенностям Erlang часто используется в телекоммуникациях, системах обмена сообщениями, базах данных в реальном времени и других областях, где критичны отказоустойчивость и непрерывная работа.
- Параллелизм и процессы: лёгковесные изолированные процессы с асинхронной передачей сообщений.
 - Отказоустойчивость: модель "let it crash" и супервизоры для автоматического восстановления компонентов.
 - Горячая замена кода: возможность обновления кода в работающей системе без остановки сервиса.
 - Распределённость: встроенные механизмы для связи между нодами и построения кластеров.
 - Функциональный стиль: иммутабельность данных, сопоставление с образцом и первое‑классные функции.
 - Стандартная библиотека и OTP: набор готовых к использованию абстракций и поведения (ген_*), реализующих серверы, состояния и супервизоры.
 - Производительность и надежность в сети: оптимизации для многопроцессорных систем и устойчивость к сетевым отказам.
 - Инструменты наблюдаемости: средства логирования, трассировки и диагностики для эксплуатации крупных систем.