Zpět na domů

Clojure a Datomic v Nubank: 131 milionů klientů

Nubank použil Clojure a Datomic pro škálování na 131 milionů klientů a minimalizoval měnnou složitost. Neměnné fakty zajišťují bezplatný audit a reprodukovatelnost. Conwayův zákon je integrován do organizace.

Nubank: Clojure a neměnné údaje pro 131M klientů
Advertisement 728x90

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í.

Google AdInline article slot

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.

Google AdInline article slot

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).

Google AdInline article slot

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

Advertisement 728x90

Číst dál