Erlang ( UR-lang) is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system. The term Erlang is used interchangeably with Erlang/OTP, or Open Telecom Platform (OTP), which consists of the Erlang runtime system, several ready-to-use components (OTP) mainly written in Erlang, and a set of design principles for Erlang programs.The Erlang runtime system is designed for systems with these traits: Distributed Fault-tolerant Soft real-time Highly available, non-stop applications Hot swapping, where code can be changed without stopping a system.The Erlang programming language has immutable data, pattern matching, and functional programming.