Why Brex Chose Elixir
Guest post by Pedro Franceschi, Founder, Brex
Almost every engineer that starts at Brex asks, “Why are we using Elixir?” It’s a question with an interesting answer, and one that we thought a lot about before we even began building Brex.
For context, Brex is a corporate credit card for startups that launched in June 2018. Brex operated in stealth / beta for over a year perfectingits product and importantly waited until they developed instant self-signup (this is hard to do in the regulated fintech world).
Brex rebuilt all the credit card infrastructure, including underwriting, compliance, statements, fraud management and rewards from scratch. Brex was built on Amazon Web Services and we uses a broad array of its products.
Brex deploys Elixir code using Kubernetes where all of the container images are stored using AWS ECR (Elastic Container Registry). We run our all our production workloads (in Elixir) on AWS EC2 with Kubernetes. All external traffic is routed to our external application through AWS ALB. AWS S3 is where Brex stores all of its user content (for example user receipts and statements). Brex uses AWS RDS as the database host for Postgres, which is used by most Elixir applications.
To learn more about why Brex choose to use the Elixir / Erlang ecosystem for the company, as well as their assessment of Elixir one year after implementation, check out their blog.