8 Companies That Use Elixir in Production

Gints Dreimanis
Article by Gints Dreimanis
Wednesday, May 6th, 2020
8 Companies That Use Elixir in Production

Elixir is a functional programming language built on top of Erlang, a technology developed by Ericsson for telecom.

This language is already a developer favorite, but as it turns out, it is also cherished by companies with products that need to scale. While its underlying machinery is excellent for building messaging tools such as Discord and WeChat, there are multiple other use cases.

To showcase them, we have featured eight projects that successfully make use of Elixir in production.

8 Elixir success stories

Discord

Discord logo

Discord is a VoIP application (primarily for gamers) that features voice, text, and video messaging. It serves 56 million users monthly, with a reported peak of 10,6 million users at the same time.

BEAM (Erlang’s VM) is perfect when you need to create scalable and concurrent web services that can efficiently serve a mass of users. With the help of Elixir, Discord has scaled to an enormous amount of users, and they don’t seem to be stopping.

Recently, Discord has also started incorporating Rust functions in their Elixir codebase to scale even further through the use of Rustler. These two seem to be a great fit together, which is good news for Elixir.

Read more about Discord’s use of Elixir on their blog.

Square Enix

Square Enix is a Japanese game development company, famous for classic titles such as Final Fantasy and Kingdom Hearts.

Final Fantasy

They use Elixir in services such as user authorization (shared across all games), CMS, APIs. If you want to handle a lot of users at once, Elixir helps to do it effectively and in a scalable and maintainable manner.

PepsiCo

PepsiCo logo

PepsiCo is the second-largest food and beverage business in the world, behind only Nestlé.

PepsiCo uses Elixir for marketing automation and supply chain optimization, and cites it as one of the reasons for success of their in-house solutions in those fields.

In their words:

We view Elixir as a nimble & reliable building block for powering critical business solutions.

Learn more about Elixir at PepsiCo in this EMx interview with Jason Fertel from the PepsiCo eCommerce marketing automation team.

Bleacher Report

Bleacher Report is a sports news website with over 3 million daily users.

Serving more than 1.5 billion pages each month is hard if you do not have the correct toolset. Besides, Bleacher Report’s content is highly customized to users.

To increase scalability, Bleacher Report transitioned its site from Ruby on Rails to Phoenix. This reportedly let them reduce their server count from 150 to 5. (This is a common occurrence: Elixir servers frequently need only one machine due to BEAM being awesome.)

Read more about Bleacher Report’s transition to Elixir on TechWorld.

Aeternity

Aeternity logo

Aeternity is an Erlang-based smart contract platform focused on scalability that features oracles, a unique governance system, and a functional smart contract language called Sophia.

While their blockchain already runs on BEAM, they also have used Elixir for an alternative implementation of a node. The benefits they claim are strong out-of-the-box concurrency support, a straightforward syntax that makes the language accessible, and stability (which can help to improve the overall security of the chain).

To learn more about the benefits of building a blockchain on BEAM, you can check out this article on Forge, a blockchain framework built in Elixir.

Weedmaps

Weedmaps is one of the leading tech companies serving the cannabis industry. With Weedmaps, consumers can find local cannabis dispensaries and place an order online.

They are currently using Elixir to power various solutions for areas such as logistics.

Sketch

Sketch logo

Sketch is a toolkit for MacOS that is well-regarded in the design community for creating user interfaces.

For their collaborative web environment called Sketch Cloud, they use Phoenix, Elixir’s premiere web framework, together with a GraphQL API that uses Absinthe.

Moodle

Moodle is the world’s most popular learning management system and is used by hundreds of millions of users worldwide.

Moodle is using Elixir for one of their new products: MoodleNet, a resource-centric social network for educators, and they say this choice is to ensure scalability for their federated social network. They have created a very detailed wiki page to document their decision, which I highly suggest to check out.

We chose Elixir as the main backend language together with Phoenix, a modern framework similar to Ruby on Rails, but so resource-friendly that it can be run on a Raspberry Pi! (Source)

Bonus round: Erlang companies

Elixir is basically a thin layer over Erlang, so it makes sense to celebrate the achievements of its predecessor as well. Erlang is used by all kinds of companies all around the world for developing concurrent and very scalable systems. In this blog post, we are just scratching the surface of what’s possible.

Messaging: WeChat, WhatsApp, and Facebook

How to build a real-time chat app? Start with Erlang.

WeChat logo

WeChat is a Chinese multi-purpose app that covers messaging, social media, and mobile payments. One of the most used apps in the world, WeChat claims to have more than 300 million daily active users.

But it is not over in the messaging app department; we present the other Erlang chat company.

WhatsApp logo

With two billion users worldwide, WhatsApp is the world’s most popular messaging application.

Erlang is one of the secret weapons that enabled them to create a product that could serve 900 million users with only 50 engineers.

The second place in the list of most popular messaging apps, Facebook Messenger, could have been in Erlang too. In fact, it was.

Since then, Facebook has moved to C++, another popular choice among messaging apps.

As we can see, Erlang and its lightweight process architecture are well-fitting to applications that need to send up to millions of small messages each second. These chat applications are very close to telecom, so they provide a fantastic modern use case for the language.

Riot Games

Games use Erlang too!

In particular, Riot Games has implemented its Riot Messaging Service in Erlang. It’s a backend service in a microservice architecture that allows other services to publish messages and enables clients to receive them.

A particular feature of Erlang that they highlight is the possibility of zero-downtime deployment. Since a single RMS cluster handles multiple League of Legends shards, they have no perfect time to take them down without impacting players.

You can read more about Riot Games’ use of Erlang on their blog.

Klarna

Klarna logo

The payments juggernaut startup Klarna is a huge proponent of functional programming languages. They use a wide variety of languages, such as Scala, Erlang, Clojure, and Haskell.

Erlang was the language the first version of Klarna was written in, and right now, it powers the core of Klarna’s system, serving millions of customers in Europe.

Future of Elixir

Because of Erlang’s VM, Elixir has amazing primitives for concurrent systems.

But, while the main “killer app” of Erlang VM right now is real-time communications systems, Elixir can spread much further. With its Ruby-like syntax that is much friendlier than Erlang to modern developers and benefits that functional programming can bring to the table in 2020, it can be a unique competitive advantage for a web product.

Furthermore, with Phoenix, Elixir’s main web framework, developers can build fast and fault-tolerant web applications in a quick manner.

If you are interested to learn more about Elixir and Erlang, you can explore the history of these two languages on our blog.

More from Serokell
10 great haskell open-source projects for linux10 great haskell open-source projects for linux
Three Months of HustleThree Months of Hustle
Find out how developers master their skillsFind out how developers master their skills