Building a credit card issuer with Elixir
summary
Brex builds a credit card issuer on Elixir on BEAM with about 25 independent services (started at ~10) running in an umbrella model, deployed in Docker on Kubernetes. Cross-service calls use RabbitMQ for cross-service messaging with eventual consistency and idempotent handlers. Data work and underwriting run in Python, core state lives in Postgres, GraphQL via Absinthe fronts a React UI. Hot code reload avoids dropping a persistent TCP link to MasterCard. This setup scales for current volume though RabbitMQ may become a bottleneck.
AI-written summary · about
chapters (19)
- 0:00Intro
- 0:55What's Brex
- 1:48Payments (Theory)
- 3:58Payment Networks
- 4:55Constraints
- 6:29Availability is gold
- 7:09Correctness keeps you alive
- 8:46Why Elixir
- 12:47Distribution is cool...
- 14:22Hot reloads
- 16:10Tooling
- 17:29Architecture Overview
- 20:47Brex 1.0
- 23:34Infrastructure
- 26:41Guaranteeing Consistency
- 29:08Execution Model
- 31:23Idempotence
- 32:52Build System
- 34:22Global Query System
related talks
55mBuilding a Bank with Go
35mBuilding a Bank with Kubernetes
38mMaintaining highly distributed services with Erlang: 20y experiences in fintech
37mFrom the ground to the stars
47mNext Generation Architecture
49mElixir in an Enterprise Telecommunications Product
41mBuilding a Bank (with DDD, Microservices, and Autonomous Teams)
23mEnabling Embedded Finance through Composable Architecture
