Erlang is a general-purpose, concurrent, functional programming language and runtime system. It was designed by Ericsson to support distributed, fault-tolerant, soft real-time, non-stop applications.
The language features lightweight processes, actor-based concurrency, pattern matching, and supports hot-swapping, which allows code upgrades to be done without stopping a system.