Migrating an Invoicing System to Elixir/Erlang by Norberto Ortigoza

By Erlang Central | Published: September 28, 2016

Slides and more info: http://www.erlang-factory.com/euc2016/norberto-ortigoza

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

Follow Erlang Central:

Have an Erlang Question?

Reach out to the Erlang community