Natasha Dowse
Audience: Beginner, Intermediate
Topic: Phoenix

Re-writing Pseudo Financial Systems in Elixir

At LoyaltyNZ we run a coalition loyalty program - this means running a set of pseudo financial systems to track currencies, balances, cumulative earn towards those balances, purchases, transactional history, and a complicated set of calculations around earning rates for currencies dependant on where you are making your purchases. Initially, we had a base set of micro-services written in Ruby within a custom-built and open-sourced API framework called Hoodoo. As this set of services started growing in size, usage, and complexity, we began having discussions around moving away from our bespoke framework to something else. We ended up deciding to change not just what framework we were using but what language, and after a bit of discussion and some proof of concepts of Go and Elixir, we decided on Elixir.

We had a series of requirements we needed to tackle when building our new microservices using Phoenix. These mostly came under:

  • Logging - how to keep this consistent with our existing log formats with Hoodoo.
  • Authentication and authorization - how to use our existing Hoodoo based Session Management
  • Integrating with existing data pipelines

This talk discusses some of the challenges we faced when trying to write new services to fit within our existing eco-system and when trying to re-write existing services and how we overcame some of those challenges.


Hey, I'm Natasha! I'm a Senior Software Developer at LoyaltyNZ - we run a coalition loyalty program called FlyBuys in New Zealand. I've been working with Ruby for a few years after completing a BSc in Computer Science at Otago University. I'm a newbie Elixir developer, and to my delight, we've recently introduced it into our tech stack at Loyalty! I'm a born and bred Wellingtonian with a requisite love for coffee and craft beer.