Migrating an Invoicing System to Elixir/Erlang
summary
A legacy Java invoicing stack uses 24 GB per server and 15 servers with frequent downtimes and no good error messages so the team rewrites core backend in Erlang/Elixir, keeps PDF generation in Java and adds Python/C++ ports for XML validation, yields metrics like from 15 to 4 servers, builds a hardware security module emulator for testing, trains ~100 people with multiweek courses, produces ~11,000 tests running in five minutes, and reports the new system is stable and lower cost.
AI-written summary · about
chapters (25)
- 0:00Intro
- 2:06Largest Elixir Meetups
- 3:47Background
- 4:49Statistics
- 6:41Requirements
- 8:12Growth in the last years
- 8:45Invoicing process
- 10:01Legacy System
- 11:20Physical Servers
- 11:43Java Servers
- 12:16Concurrent Users
- 12:49Status
- 19:51Strategy
- 22:54Fixing the Old System
- 23:37Fixing Old System
- 25:40Replacing the Client with Go
- 27:22Training the Team
- 28:41Small Projects in Elixir
- 31:11The Big Rewrite
- 33:58Previous System
- 37:47Elixir System
- 39:15Elixir Servers
- 39:42New System
- 41:58Performance - CPU
- 42:18Final Words
related talks
54mLiving in a Polyglot World
23mElixir: Happy Developers and Scaleable Backends
53mBuilding Performant Backends with Elixir
43mPolyglot Paralellism: A Case Study in Using Erlang and Ruby at Rackspace
42mWeb API's with ERLANG a Ruby Dev's POV
42mIntroduction to Elixir for Rubyists
34mRubyists, have a sip of Elixir!
48mBERT and Ernie: Scaling your Ruby site with Erlang
