Elixir is one of the top choices among modern functional programming languages. Descending from Erlang (and making use of the Erlang virtual machine), Elixir kept all the good parts while also introducing features that make it more attractive and easier to use. There are many advantages that this language can lend to a business project. In this post, we’d like to explore a few.
Elixir’s technological advantages
Elixir allows businesses to cut the costs of maintaining their infrastructure, improve the fault tolerance of their systems, support more users at the same time, and more.
More traffic at a lower cost
Bleacher Report, a sports news platform, moved their system from Rails to Elixir to accommodate their high traffic (1,5 billion visits a month). Since then, they’ve lowered the number of servers they need to manage their infrastructure, and can actually support more users. Elixir allowed them to deal with higher numbers of users at a lowered infrastructure cost.
Because Erlang initially was created to manage telephone switches, it had to allow for debugging and upgrading live systems. This meant that live, healthy connections weren’t dropped while technicians upgraded the code of a whole switch, with new connections using new code, without any restarts. Elixir works using the same principles, but has a more approachable, modern syntax. The result is that elements of an app can undergo maintenance without disrupting other processes, and problems can be dealt with in isolation.
Elixir was built so that apps could work continuously, without restarts. Problematic parts can be restarted automatically, without affecting the rest of the program - single application processes can be restarted independently of others or under supervisor trees. When something is wrong, it can be fixed in isolation from the rest of the app. If these are critical systems (ones that can’t be restarted without serious consequences to the business), it’s possible to replace or upgrade code in real time without ever stopping the app’s operation. Other programming languages allow for similar results with tools built for the purpose, but Erlang and Elixir have it all included in their core libraries and runtime.
It’s easy for Elixir to connect through a network to other nodes that are on different machines, making clustering faster and more efficient. It’s easy to write distributed systems, because all the necessary primitives and tools are already built into the language. From the point of view of the code, it doesn’t matter if you are going to send data to a server (an Erlang/Elixir server) that’s being run on the same Erlang virtual machine, or if it’s a different physical machine halfway across the world. Failures are handled the same way, making the creation of distributed code a much simpler task.
Seniority of Elixir developers
Elixir is a relatively new language, not used as widely by either businesses or developers as some other technologies. As a result, there aren’t too many junior Elixir developers. In fact, Elixir is often picked up as a new programming language by people with experience - people who are looking for something new and different from what they already know, or who need a solution to a specific problem. The total number of Elixir developers is smaller than in the case of some languages, but most of them are very experienced and valuable to the businesses they work for.
The proof that Elixir offers top solutions
It’s said that imitation is the best form of flattery. If that’s the case, Elixir has received a lot of indirect praise. Many frameworks in other languages are inspired by Erlang and Elixir’s solutions, because of what these two languages have achieved for concurrency and and distributed systems. Libraries from other languages like Akka, Actix, Proto.Actor (and many more) are based on architecture taken from Erlang’s OTP (Open Telecom Platform). For over 20 years Erlang honed and improved its OTP, making it the de facto battle tested industry standard. It’s only smart to continue building on this achievement.
Businesses that can benefit the most from Elixir
Any business can take advantage of what Elixir has to offer, but the language is most useful to those that need to deliver one app to a multitude of users.
SaaS projects benefit especially if two or more clients connect to a single instance of the app. If there’s a problem for one client, it can be fixed without other clients ever becoming aware of it, because one client’s processes can be restarted independently of others.
Network apps or web frameworks are another example, as Elixir works well for building apps to manage and orchestrate other smaller apps, thanks to its isolation capabilities.
Some better known examples of Elixir in action include Moz, the Bleacher Report, Discord, and, last but not least, Cisco. The network giant uses Erlang. In fact, a significant portion of internet traffic would be very different without Erlang software - we’ve seen claims that 90% of all internet traffic goes through Erlang-controlled nodes. It’s easy to see that both Erlang and Elixir are great choices for modern businesses that can take advantage of their features.
Interested in building an app with Elixir? Good choice!
This modern language can help you achieve high concurrency, fault tolerance and easy clustering. Let’s talk about your vision and see how it can benefit the most from using Elixir.