Although creating a server application has become easier over the years with a broader range of technologies available, it remains a hard problem to tackle. This is especially true when you need to build a reliable network of hundreds of interconnected servers all around the world.
At AnyDesk, Erlang is one of our core technologies that we have used to develop our server system. We believe that it’s a perfect fit for us and here’s why.
Erlang is a free and open-source programming language originally developed at the Ericsson Computer Science Laboratory aiming to improve the development of telephony applications. It provides very efficient concurrency based on strongly isolated user-level threads and message passing. This approach makes it perfect for soft-real-time distributed server applications and it’s also a key aspect for providing a high level of fault-tolerance.
The strong focus on process isolation also fits very well with the functional programming style that Erlang uses. At the same time, the background in telecommunication makes Erlang a very pragmatic language with a series of required tools right out of the box.
We have been using Erlang from the very beginning, and it is time to reflect on the results. Erlang has allowed us to build an efficient server system with high levels of availability and a relatively small and compact code base. Therefore, it is still easy to manage, maintain, and extend our server application.
This goes to show that it helps to think twice about the tool you want to use, what the options are, and what the best fit for your project is. Choosing Erlang for our server infrastructure was certainly one of the key factors in making AnyDesk the success that it is today.
By the way, we’re currently looking for a developer who shares our love for Erlang!