Erlang Elixir Phoenix Scalability Innovation

The Erlang & Elixir way

We have more than 20 years of experience in Erlang. We helped Erlang grow by being able to use the right class of project for Erlang: Messaging. We created ejabberd, a large scale messaging project that helped Erlang gain in popularity.

We were then followed by other companies that noticed we had the right vision. RabbitMQ started the project in Erlang because ejabberd led the way. Then, Whatsapp – and many companies after them – decided to use ejabberd as a basis for their real-time messaging system as well.

Messaging applications require persistent connections. This is a domain where robustness & fault tolerance, scalability and high availability really matters.

  • A messaging application is stateful. A web application is often stateless. You can easily take down one of your HTTP front-end, but you cannot do that with a messaging protocol as it will trigger a reconnect, that is likely to be visible by the end-user.
  • A messaging application needs to synchronize states and need to know where the other users sessions are located in the cluster. Erlang VM provide some handy mechanism to handle cluster state synchronizations.
  • A messaging application needs to have stellar uptime, not only because it is important to give the users a great service 24/7, in all the timezone your users are located, but also to avoid the issue of "cold start" of messaging service. If you have to restart the service, you have to be able to handle a massive amount of reconnections. Erlang VM can let you in many cases upgrade the code without restarting the application or even disconnecting any users. You can upgrade the system without the stress of handling massive reconnect storm and provide the best possible service to your users.

For all those reasons we identified early on, ProcessOne led a trend in messaging apps. It helped get other companies and developers interested in the Erlang VM properties. Jose Valim decided he could leverage the properties of the virtual machine but use a new syntax, closer to Ruby programming language. Elixir was born.

Coming from Rails background, he quickly was joined by Chris McCord, and they built Phoenix, a Rails-like framework to create scalable and clusterable web applications. Still, Phoenix mostly shines with Websockets and realtime messaging applications, again following ProcessOne early intuition that Erlang VM was a great fit for instant messaging.







 


Subscribe to our Real-time Radar newsletter:



     

© 2008-2019 ProcessOne · Editor   
Selected icons made by Good Ware from Flaticon