A programming stack designed to scale

Elixir / Phoenix

There’s truly no limit to how far and wide Elixir and Phoenix can grow, and Revelry’s software engineers have been using it since the beginning

Let's Build Something Together

What is Elixir?

Elixir is a functional, general-purpose programming language built on Erlang OTP to handle large data volumes concurrently with low latency. Elixir is a feature-complete language making it a top choice among developers for new product development.

First introduced in 2014, Elixir creator José Valim created it to improve extensibility and productivity in the Erlang virtual machine, BEAM.  He wanted to explore concurrency in programming, which allows multiple computations to happen in parallel. Elixir takes advantage of multi-core processors in most computers today. This approach means processing can scale to use all available resources on a machine automatically.

Another unique characteristic of Elixir is that it uses pattern matching, which allows for matching simple values, data structures, and functions. Think of pattern matching as a very advanced if statement or switch case statement, a potent tool.

Elixir also has extensive libraries to efficiently implement solutions to complex everyday tasks.

elixir image logo software programming
phoenix logo

What is Phoenix?

Introduced in 2015, Phoenix is now the go-to framework for creating web applications with Elixir. Like Rails, Phoenix uses a server-side model-view-controller (MVC) pattern and builds on Elixir’s developer productivity and speed philosophy.

Phoenix has several key features that improve product execution, including:

  • Cowboy: the default webserver
  • Ecto: a language for reading and writing databases.
  • LiveView: a way to easily implement real-time updates of server-side rendered HTML pages.
  • Components: a way to have a server-side rendered HTML page with component architecture similar to React to better support SPA (single page applications).
  • Plug: a way to achieve easy guards for controllers and implement a robust permissions system.
  • Built-in Channels: a way to quickly implement real-time communication with and between millions of connected clients

An Easy-to-Learn and Efficient Choice

The engineering team at Revelry adopted Elixir early on due to its benefits and versatility. We prefer it because of its speed and efficiency, which allows for replicating common elements of applications. Developers can keep using the same language over many different project types.

Many experienced engineers with a Ruby on Rails background find learning Elixir and Phoenix relatively simple due to similar controllers, routers, templates, and database models. Additionally, the pattern matching feature of Elixir makes for cleaner code. Each process runs independently, so if something goes wrong with one process, then it doesn’t take everything down.

elixir releases

Eliminating Software Bugs Faster

From a technical standpoint, functional programming languages like Elixir are inherently easy to write tests for, and the apps can be horizontally scaled naturally. For us, more testing means fewer bugs and a more scalable codebase, which allows the app to grow with less refactoring and maintenance work.   

Elixir, Phoenix, and LiveView perform so well at serving pages that we find ourselves writing less front-end JavaScript to make the page feel snappy and responsive.

A Supportive Community for Engineers

The community of engineers who work in and maintain Elixir is supportive, approachable, and collaborative, making finding resources and answers easier. Elixir has also created an environment for engineers to change and deploy applications quickly, and the community is dedicated to making it better.

Perhaps one of the best strengths of Elixir is that it is a language that engineers truly love to use. There are annual conferences in the US and Europe that host thousands of people, with growing attendance each year. Elixir can be a perfect choice for your next project given the importance of employee retention and job satisfaction.

monitoring phoenix
Team insights

Elixir and Phoenix Learnings

What’s New in Phoenix 1.7 + LiveView .18 – File Structure and Templates

I recently had the opportunity to use Phoenix 1.7 and LiveView .18.3 in a production environment and it was, in a word, amazing. It’s…

Revelry Blog signal flow image black background with colored bands waves

Programmatic Parallels of Signal Flow

By Matt AguiluzRevelry Alumni Signal flow is something I find endlessly fascinating. The process of receiving input, processing it, and returning output is relatively…

data pipeline illustration Revelry blog

Data Pipelines in Elixir

Have you been looking to do something in Elixir outside of the usual Phoenix website? Or do you need to do some data processing…

Designed to Scale

Elixir and Phoenix have first-class build and release tools, package management, project scaffolding, testing, and documentation that are all available out of the box. Beyond app development, Elixir is also an excellent choice to provide a backend framework or API that can be accessed and used by programs built in any language.

Elixir is designed to scale so that hundreds of thousands of machines can talk to each other. There’s truly no limit to how far and wide Elixir can grow. Let’s build together.

Our work

Elixir in Action: A Development Case Study

Read how we partnered with logistics company Fillogic to support the digital transformation of its physical retail ecosystem to meet the demand and expectations of modern consumers.

Read the case study
Fillogic software development project in Elixir by Revelry