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 engineers have been using it since the beginning.
We love all things Elixir and will share our knowledge and enthusiasm with your team.
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.
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.
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.
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.
Elixir and Phoenix Learnings
You don’t have to forsake Elixir and Phoenix to work with Web3 and Blockchain. Liveview gives us the perfect intermediary. Background The Conference: The…
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.
Elixir Development Case Study
Read how we partnered with Fillogic to support the digital transformation of the physical retail ecosystem to meet the demand and expectations of modern consumers.Read the case study