If you want the insider story – jump straight here, where Joel Kemp, Spotify Staff Software Engineer, explains how Elixir helped him and his team break through some rough issues.
I will let Joel speak for himself:
At work, I’ve been maintaining a business critical, JVM-based backend service that has to handle thousands of requests per second (we’ll call that a “high traffic” service). Without going into details, the service basically calls out to a database and another backend service on every request and then responds to the user’s request. It also does some off-request operations that are necessary for dealing with the database. The point is that there are some concurrent operations going on within the service for every request.
This is a perfect case for Elixir – a language that allows high level concurrency unavailable in most languages. Don’t get concurrency and why it matters? Here is another great explainer from Sophie DiBenedetto from Flatiron Labs as to why this particular aspect of Elixir rocks. Using her analogy, it allows you to load two washing machines at once!
Another technological big shot, Discord, has used Elixir extensively in its software. It proudly says it was an early adopter, as their real-time systems had to handle significant traffic, in millions of users and events every second.
Discord has published multiple interesting blog posts about its Elixir use, and it shows what thinking process went into choosing it as one of their main technologies in the stack. To put it in simple terms from one of such entries:
We developed the original prototype of Discord in Elixir; that became the foundation of our infrastructure today. Elixir’s promise was simple: access the power of the Erlang VM through a much more modern and user-friendly language and toolset.
In the article quoted above, Discord CTO describes using Elixir to boost the efficiency of their service and upping its capability to over 5 million users at once. Just two years later Discord grew more than two-fold, and published another article – this time showing how Elixir worked with Rust to further empower their software to allow 11+ million concurrent users.
This shows its adaptability and why it is sought after (with companies reporting a lack of Elixir specialists in recent years), and Discord still uses it for its server-side operations.
Pepsi had an interesting challenge – it is a beverage company, which had a bit of trouble in attracting serious engineers and developers.
Elixir proved to be a part of the solution. As discussed broadly in a great interview with Jason Fertel, eCommerce Engineering Lead, it helped the company cultivate an image of a serious technological competitor and build great products. Elixir became a vital part of Pepsi tech stack, and parts of its infrastructure was rewritten in Elixir to improve its scalability and efficiency.
Looking for a job in a game development company? Japanese powerhouse Square Enix - author of legendary titles such as Final Fantasy, Tropico and upcoming Marvel’s Avengers actively recruits back-end developers with Elixir experience, and for good reasons. Handling its platform-wide authentication for all games at once, as credentials follow users through different games, requires some special programming abilities.
So anytime you go about building an economic powerhouse in Tropico or want to slay iconic Final Fantasy monsters, Elixir makes it all possible.
Another software with high requirement for efficient handling is WhatsApp – which in 2019 has been the most popular messaging app in the world, and grew exponentially after being acquired by Facebook in 2014. Couple of years ago it was lauded as one of the most innovative tech companies, as only 50 engineers were needed to service 900 million of its users.
Erlang, with its lightweight process architecture that later brought us Elixir is a great fit for WhatsApp and even companies that exploit its platform for other purposes – like social impact projects ran in Elixir.
To learn what Elixir can bring to your business – give us a call!