11m read
Tags: elixir, fintech, programming

For years I have worked very closely to the Canadian financial industry, and I have gained a lot of insights on how the industry works and what are the main challenges that they face. While is true that no technology is a silver bullet, and that the financial industry is very conservative when it comes to adopting new technologies, I have seen a lot of potential in Elixir to be the technology that can help the industry to overcome some of the challenges that they face.

This article is more of an opening letter and hopefully the first of many articles that I will write about how Elixir can help the financial industry build better software and products.

Fintech is a diverse and rapidly expanding industry, spanning everything from payment processing and lending to insurance and wealth management. Because it deals with complex financial transactions, it demands high-performance, fault-tolerant systems capable of handling large volumes of sensitive data efficiently and securely.


Let’s start by unpacking the term “fintech”; as of late fintech is often associated with Blockchain and Cryptocurrencies, for now I will avoid those topics and focus on the more traditional financial services. So if not the Blockchain what are we talking about when we say fintech? There is a number of categories that fall under the fintech umbrella, some of them are:

  • Payment Processing: Companies that facilitate online payments, such as Stripe or Square.
  • Lending: Platforms that provide loans or credit, like LendingClub or SoFi.
  • Payroll Services: Tools that help businesses manage payroll and benefits, such as Gusto.
  • Personal Finance Management: Apps that help individuals track and manage their finances, like Mint or YNAB.
  • Insurance: Companies that offer insurance products, such as Lemonade or Oscar.
  • Wealth Management: Platforms that help individuals invest and manage their wealth, like Wealthfront or Betterment.
  • Regulatory Compliance (Regtech): Tools that help companies comply with regulations, such as ComplyAdvantage or Onfido.
  • Trading Platforms: Apps that allow users to buy and sell securities, like Robinhood or E*TRADE.
  • Crowdfunding: Platforms that enable individuals to raise funds for projects, such as Kickstarter or Indiegogo.
  • Buy Now, Pay Later: Services that allow consumers to make purchases and pay for them over time, like Affirm or Klarna.
  • Embedded Finance: Companies that integrate financial services into other products, such as Plaid or Stripe.
  • Open Banking: Initiatives that enable third-party developers to access financial data, like PSD2 in Europe.

What Makes Elixir a Strong Fit for Fintech?

While the previous list is quite extensive to some level all these applications share similar requirements. They need to process millions of transactions, ensure data accuracy, and maintain uptime—all while scaling to meet increasing user demand.

Elixir’s design and architecture uniquely position it to meet these requirements. Here’s a detailed look at why Elixir excels in this demanding environment:

Elixir for Fintech

  • Fault Tolerance: Elixir’s foundation on the BEAM virtual machine provides extraordinary fault tolerance. Unlike many other technologies, if a process fails in Elixir, it is contained and won’t cascade through the system. This level of fault isolation is especially important in fintech, where a single point of failure can lead to catastrophic data losses or financial disruptions. For example, a payment gateway processing hundreds of thousands of transactions daily benefits from Elixir’s ability to restart failed processes without user impact.

  • Concurrency: Elixir’s concurrency model, based on the actor model, is second to none. Each process is lightweight and independent, enabling systems to handle thousands—even millions—of simultaneous connections without slowing down. This makes it ideal for real-time financial applications, such as trading platforms or fraud detection systems, where speed and responsiveness are non-negotiable.

  • Scalability: Scalability is baked into Elixir’s DNA. Whether your system needs to grow to support new features or scale horizontally to handle increased traffic, Elixir’s distributed systems support ensures that the transition is seamless. Startups and established enterprises alike have found that Elixir’s scalability keeps pace with their growth without costly overhauls.

  • Zero Downtime: With its hot code swapping capabilities, Elixir allows updates to be deployed in real-time without bringing services offline. This feature is a game-changer for fintech systems that operate around the clock, where downtime can lead to significant revenue losses and customer dissatisfaction.

  • Developer Productivity: Elixir’s syntax is clean, intuitive, and highly expressive, which accelerates development. Teams can prototype, iterate, and deploy faster than with many traditional technologies. Combined with robust tools like Phoenix Framework, developers can create scalable APIs and web interfaces with ease.

In summary, Elixir isn’t just a good choice for fintech; it’s arguably the best one for systems where reliability, speed, and scalability are mission-critical.

Want to see how Elixir can transform your fintech infrastructure? Let’s talk—connect with me on LinkedIn or follow my insights on allanmacgregor.com.

Real-World Adoption

Several prominent fintech companies have already embraced Elixir to power their platforms:

Brex

Brex, the fintech company behind corporate credit cards and spend management tools, runs its backend largely on Elixir. They chose this language mainly for its ability to handle tons of simultaneous transactions without breaking a sweat, thanks to the Erlang VM’s robust concurrency model.

Brex faced challenges with real-time data processing as it scaled. By adopting Elixir, they achieved:

  • Faster data pipelines for processing transactions.
  • Improved system reliability during traffic spikes.
  • Simplified codebase maintenance.

The choice makes sense given Brex’s needs. Their platform processes countless financial transactions in real-time, and Elixir’s built-in fault tolerance helps keep everything running smoothly. If something goes wrong, the system can isolate the problem and recover quickly – crucial for a financial service that can’t afford downtime.

Brex also benefits from Elixir’s Phoenix framework, which powers their real-time features. When customers check their expense dashboards or receive transaction alerts, they get instant updates thanks to Phoenix’s efficient handling of live data. For a fintech company where every second counts, this responsiveness is essential.

Klarna

Klarna, the major “Buy Now, Pay Later” provider, relies heavily on Erlang-based technologies for its financial operations. While they’re not completely open about their tech stack, it’s widely known in tech circles that they use Elixir for some of their backend systems.

Handling millions of transactions daily, Klarna needed a system that could scale without breaking. Elixir provided:

  • High availability with zero downtime.
  • Efficient management of concurrent user sessions.
  • Real-time data synchronization across distributed systems.

The choice makes perfect sense for their needs. During busy shopping seasons, Klarna processes millions of checkouts worldwide. Elixir’s ability to handle multiple tasks simultaneously helps them manage these huge traffic spikes without slowing down. Plus, if something goes wrong, Elixir’s built-in safeguards help contain the problem – crucial for a financial service that needs to stay up and running 24/7.

The platform also takes advantage of Elixir’s Phoenix framework to power real-time features like instant payment confirmations and order updates. This means both shoppers and merchants get immediate updates about their transactions, helping Klarna maintain its edge in the competitive fintech market.


Challenges and Misconceptions

While Elixir and it’s ecosystem are well-suited for fintech, there is never a silver bullet in tech; and this is no exception. As you are considering Elixir for your fintech project, it’s important to be aware of some of the challenges and misconceptions that you might face:

  • Ecosystem Size: Critics often cite the smaller library ecosystem compared to more established languages like Java or Python. For instance, a fintech company might need a specific library for a niche payment protocol that doesn’t yet exist in the Elixir ecosystem. However, this gap is shrinking as the Elixir community grows and as companies like Dashbit contribute high-quality open-source tools. Additionally, Elixir’s ability to interoperate with Erlang libraries and external APIs offsets many of these concerns.

  • Learning Curve: Functional programming can be daunting for developers accustomed to object-oriented paradigms. Teams new to Elixir might struggle initially with concepts like immutability and pattern matching. For example, a team transitioning from Ruby could experience slower onboarding. Yet, those who persist often find that Elixir’s consistency and clean syntax ultimately lead to faster development cycles and fewer bugs.

  • Perceived Niche Status: Some decision-makers are hesitant to adopt Elixir because they perceive it as a niche technology. This concern is often dispelled when they see success stories like Brex and Klarna or learn about Elixir’s origins in telecom systems, which demand extreme reliability.

  • Community Size: While smaller than Java’s or Python’s, the Elixir community is tight-knit and highly engaged. Developers often praise the quality of resources available, such as the “Elixir Forum,” conferences like ElixirConf, and excellent documentation.

On the other hand, Elixir’s unique features and benefits far outweigh these challenges, making it a compelling choice for fintech applications. Some of the key advantages include:

  • Process Isolation: Each transaction or user session runs in its own lightweight process. This ensures robust error handling and makes the system resilient to crashes.

  • Distributed Systems Support: Elixir natively supports distributed architectures, allowing apps to run seamlessly across multiple servers.

  • Low Latency: The BEAM VM’s architecture minimizes response times, ensuring real-time performance.

  • Cost-Efficient Scaling: Elixir’s lightweight processes consume fewer resources compared to traditional threads, reducing infrastructure costs.


Why Choose Elixir Over Alternatives?

If we want to take a closer look at how Elixir compares to other languages commonly used in fintech, such as Java and Python, we can see how Elixir measures up against them:

Feature Elixir Java Python
Concurrency Model Lightweight Heavyweight Limited
Fault Tolerance Built-in Add-ons required Minimal
Scalability Seamless Complex Moderate
Real-Time Performance Superior Moderate Limited

Conclusion

For any technology leaders in the fintech space, Elixir is a compelling choice for building high-performance, fault-tolerant systems. Its unique combination of fault tolerance, concurrency, and scalability makes it an ideal fit for applications that demand real-time performance and high availability.

Not to mention that Elixir’s clean syntax and developer-friendly tools make it a joy to work with, accelerating development cycles and reducing maintenance costs. As the fintech industry continues to grow and evolve, Elixir is well-positioned to meet the demands of modern financial applications.

If you’re building a fintech product and wondering how Elixir can fit into your stack, let’s connect. Drop a comment or reach out directly!


What do you think of what I said?

Share with me your thoughts. You can tweet me at @allanmacgregor.