Erlang é uma linguagem de programação concorrencial, coletada de lixo e sistema de tempo de execução usado para construir sistemas em tempo real suaves massivamente escaláveis com requisitos em alta disponibilidade. O subconjunto sequencial de Erlang é uma linguagem funcional, com avaliação ávida, atribuição única e digitação dinâmica. Foi projetado pela Ericsson para apoiar aplicações distribuídas, tolerantes a falhas, soft-real-time, sem parar. Ele suporta hot swapping, de modo que o código pode ser alterado sem parar um sistema. Alguns de seus usos estão em telecomunicações, bancos, e-commerce, telefonia de computador e mensagens instantâneas. Erlang's sistema de tempo de execução tem suporte embutido para concurrency, distribuição e tolerância a falhas.