About this Book
Elixir is a modern functional programming language for building large-scale scalable, distributed, fault-tolerant systems for the Erlang virtual machine. Although the language is compelling in its own right, arguably its biggest advantage is that it targets the Erlang platform.
Erlang was made to help developers deal with the challenge of high availability. Originally, the product was intended for development of telecommunication systems; but today it’s used in all kinds of domains, such as collaboration tools, online payment systems, real-time bidding systems, database servers, and multiplayer online games, to name only a few examples. If you’re developing a system that must provide service to a multitude of users around the world, you want that system to function continuously, without noticeable downtime, regardless of any software or hardware problems that occur at runtime. Otherwise, significant and frequent outages will leave end users unhappy, and ultimately they may seek alternative solutions. A system with frequent downtime is unreliable and unusable, and thus fails to fulfill its intended purpose. Therefore, high availability becomes an increasingly important property—and Erlang can help you achieve that.