Migrating an Invoicing System to Elixir/Erlang

Norberto Ortigoza
Erlang/Elixir User Group Organizer in Mexico City

Electronic invoices are a critical part of trade in Mexico. If invoices are not created and delivered in time, we can generate serious problems such as complete loss of cargo ships, representing millions of Mexican pesos in losses. 

We had a legacy system developed in Java from 8 years ago. It had a lot of problems including:

1) Big memory footprint (24 GB per server)

2) A lot of servers in order to distribute load and isolate errors (15 servers)

3) Frequently downtimes 

4) No proper error handling and messages for troubleshooting

5) No statistics (they produced more load in the system)

We built a new system that resolves all these problems and provides a better foundation for future services.

We wrote the backend in Erlang and Elixir, with additional micro-services in Python, C++ and Java for XML validation and PDF generation.

In this presentation I will talk about:

1) How we trained the team of java/ruby in Elixir/Erlang 

2) Metrics about the new system (from 15 to 4 servers, etc.)

3) Problems we face

4) How to introduce Elixir/Erlang in a company with a lot of investment in Java.

Talk objectives:

- To show another area where Erlang/Elixir fits very well (High availability). 

- To show how to introduce Erlang in a medium size company with no previous experience using it.

- To show how to transition from a Java system to an Erlang one.

Target audience:

Project or Technical Leaders, CTOs, Programmers


Norberto Ortigoza is an iOS instructor at BigNerdRanch, also a Ruby/Rubymotion, Objective-C, Swift and Erlang/Elixir instructor, co-founder of the CocoaHeads and Erlang/Elixir user groups in Mexico City. He has been programming in Smalltalk, Objective-C, Java, C#, C, Python, Ruby, Go, Swift and Elixir for over 20 years. He is an experienced speaker and teacher. He is working at Diverza and co-organized the first Erlang Factory Lite in México.

GitHub: hiphoox

Twitter: @hiphoox

Back to conference page