Elixir is a programming language that runs on the BEAM VM – the same virtual machine as Erlang – and can be adopted right throughout the tech stack. Elixir is designed to combine Ruby’s familiar syntax with the guaranteed performance, scalability, and resilience of Erlang. When choosing a programming language for software development within FinTech and financial services, uptime and fault-tolerance are of mission-critical importance and this is where Elixir will often be the right tool for the job.
Here we take a look at the success story of Elixir in FinTech with Memo Bank, the first independent bank to be created in France in the last fifty years, that has just completed a new fundraising round of €13 million.
THE MEMO BANK STORY
‘The kind of bank we wanted simply didn’t exist; so, we decided to build it.’
This was the ambitious starting point for the genesis of Memo Bank, we will examine why and how they chose to build a fast, innovative, and secure banking system from scratch using Elixir as the programming language of choice.
Memo was founded in 2017 and serves the European small and medium businesses (SMB) market, helping them to manage cash flows and fund their growth as a bank ‘designed by business people for business people’. The French based bank provides all the services you’d expect from a business bank, from current accounts to credit lines.
Why Memo Chose Elixir
There are 2 wonderful first hand accounts detailing the planning and architecting stages of the early days of Memo which you can find on their Medium profile. This section summarises their story.
As Jérémie Matinez explains in his post ‘Why Elixir? An alchemy between backend and banking’, the advantage of building from the ground up, was that they could incorporate the most efficient procedures and modern technologies into their systems from the very start. The guiding principle was that, when it comes to banking, data (its accuracy, accessibility and security) were of paramount importance. To comply with financial services regulations and for customer trust, Memo needed to build a system that is always available anytime, from any device. Combined, these mission-critical requirements led to the decision to adopt Elixir for the core banking system and all of the other backend applications.
Memo was particularly attracted to building in Elixir to leverage its immutability for ease of development and easier concurrency and testability, necessary when needing 100% reliability for a FinTech system. They also pinpointed the language as being able to reach the level of system scalability and availability needed to absorb real-time transactions.
What else did they like?
– The good trade-off between performances and high level features
Memo found that Elixir offered them the perfect balance between performance and features to provide them with the reliable structure to facilitate their ambitions at scale and provide high availability for reliable real-time transactions.
Being built upon Erlang and targeted to run on the BEAM virtual machine, Elixir shares its performance and ecosystem advantages and concurrency model as standard. Also, Erlang is part of the exclusive club of the nine nines languages which makes it one of the most available and reliable platforms out there.
– The growing and solid community
The Elixir developer community is very friendly and welcoming and the ecosystem is growing all the time. Memo’s team found that although it is a relatively new language, it does enjoy the availability of any tool that is written originally for an Erlang codebase. They also mention some of the extremely powerful frameworks that allow full-stack development, most prominently Phoenix Live View for web application development.
WHAT ELSE ELIXIR BRINGS TO THE TABLE FOR FINTECH
Elixir is built on top of really mature and stable tech (Erlang and the Beam VM) with good documentation, which is a big plus point for any startup looking to grow trust within their customer base. It is used in many other successful FinTech companies such as Klarna and SolarisBank making it a battle-tested language for innovation in the industry.
There are some major positives to opting for Elixir which meets the requirements of startups and scaleups in the space:
- Scalability – If you reach your goals of millions of users, then you’ll have benefited from the reliability and scalability of the BEAM VM
- Concurrency – handling a lot of simultaneous requests reliably such as from spikes in transactions
- Easy to develop and maintainable – ease of usage and fast development for everything from fixing bugs to adding new features
Overall what you gain from using Elixir for your FinTech project is a smaller more manageable codebase that is faster and significantly more reliable when compared to systems built in other programming languages.
We worked with Bleacher Report, the leader in providing real-time, social-first, mobile-first sports content, to help them move their system from Ruby to Elixir. We achieved a 10x reduction in the time it takes to update the site for a system moving from 150 servers to just 8. Check out the case study here.
‘They were able to come in with their expertise, help us establish best practice and give us confidence that going forward our systems would be efficient and reliable.’
Dave MarksSenior Engineering Director @ Bleacher Report
Overall the Memo Bank system uses modern tools and processes and is designed for speed. The transactional core of Memo Bank is now fully powered by Elixir to deliver on its mission of maintaining customer account records with the highest possible availability and reliability. The Core Banking System is easily adaptable to new customer needs and produces accounting and regulatory reporting in real-time.
What this success story shows is that whether you need to start from scratch or you already have an infrastructure to integrate with, Elixir is a proven, sound technological choice to build software that will adapt to your business and stand the test of time and scale.
The Erlang Solutions team has worked closely with the Elixir core team since its inception. Whether you’re new to Elixir, looking to grow your team, add new functionality or integrate with a new system, we’re here to help you make it happen. Tell us about your project requirements here.