Neměnné grafy a Clojure: Jak Nubank vybudoval banku pro 131 milionů klientů
Nubank dosáhl 131 milionů klientů za 12 let pomocí Clojure, Datomic a neměnných dat. Jeho architektura zahrnuje 4000 mikroslužeb, 72 miliard událostí v Kafka denně a 2,5 miliardy transakcí v Datomic. Toto řešení minimalizuje složitost a poskytuje auditní stopu bez dodatečné infrastruktury.
Brazilský kontext a začátek Nubank
V Brazílii pět bank ovládalo 84 % úvěrového trhu s úrokovými sazbami až 450 % ročně. 34 milionů dospělých nemělo bankovní účty a otevírání účtu trvalo měsíce. V roce 2013 tým zahrnující Davida Veleze (Sequoia Capital), Cristinu Junqueira (Itaú) a Edwarda Wiblea (Princeton) spustil Nubank s kreditní kartou bez poplatků přes mobilní aplikaci a limitem od 10 dolarů.
Počáteční investice činily 2 miliony dolarů. Růst: 12 milionů klientů do roku 2019, 48 milionů do IPO v roce 2021, 100 milionů do roku 2024 a 131 milionů do roku 2025 (62 % dospělé populace). Rozvoj probíhal prostřednictvím doporučení.
Problémy s mutabilitou v bankovních systémech
Mutabilní data komplikují audit: regulátoři vyžadují stav klienta v konkrétním okamžiku – limit, skóringový model, vstupní data. Transakce jsou napadány bez úplné historie. Řešení strojového učení nejsou reprodukovatelná po aktualizacích.
Tradiční řešení – auditní tabulky, triggery, verzování – přidávají tisíce řádků kódu bez obchodní hodnoty.
Imutabilní přístup: Každá změna je nový fakt s časovým razítkem. Stav v libovolném okamžiku se extrahuje dotazem. Audit je zdarma, reprodukovatelnost je zaručena.
Volba Datomic a Clojure
CTO Edward Wible se řídil principy „Out of the Tarpit“, zaměřujíc se na minimalizaci mutabilního stavu. Zvolil Datomic – imutabilní databázi od Riche Hickeyho ve formátu EAVT (Entita-Atribut-Hodnota-Transakce).
- Nic se nemazat.
- Každá změna je fakt s časem transakce.
- Stav je časový řez, podobně jako v Gitu.
Datomic vedl k Clojure: tým opustil OOP a RDBMS. Architektura: Clojure (backend), Kafka (asynchronní), Datomic (data), Flutter (mobilní), AWS/K8s (infrastruktura).
Měřítko v roce 2025: 4000 mikroslužeb, 72 miliard událostí v Kafka denně, 2,5 miliardy transakcí v Datomic denně, 85+ K8s clusterů, 50+ nasazení denně (master do produkce za 30 minut).
Nubank získal Cognitect (tvůrci Clojure/Datomic) v roce 2020, Hickey se připojil. Datomic byl open-source pod Apache 2.0 v roce 2023.
Filozofie Riche Hickeyho
Rich Hickey vytvořil Clojure za 2,5 roku sám. Klíčové myšlenky z „Simple Made Easy“:
- Simple – nepropletené, easy – známé. Průmysl obětuje jednoduchost pro snadnost.
- Hodnoty > objekty. Čas je posloupnost faktů.
- Identita – řada stavů, fakta jsou neměnná.
Důsledky:
- Žádné zámky/mutexy, triviální konkurence.
- Deterministické testování.
- Databáze jako Git: cestování v čase.
Victor Oliveira: Hickeyho přínos přesahuje jazyk, mění přístup k softwaru.
Conwayův zákon v architektuře Nubank
Conwayův zákon (1968): systémy odrážejí komunikační strukturu organizace. Tři týmy – tříprůchodový kompilátor; rozdrobené skupiny – neohrabaná rozhraní.
Nubank vědomě buduje organizaci podle architektury: malé křížově funkční týmy, jednotný technologický stack. Tím minimalizuje složitost a škáluje na 131 milionů klientů.
Co je důležité:
- Imutabilita eliminuje potřebu auditní infrastruktury, zjednodušuje compliance.
- Datomic EAVT + čas = Git pro bankovní data.
- Clojure + Conwayův zákon zajišťují jednoduchost při 4000 službách.
- Růst Nubank dokazuje životaschopnost funkcionálního programování pro high-scale fintech.
- Open-sourcing Datomic urychluje adopci.
— Editorial Team
Zatím žádné komentáře.