Leveraging Software Architecture at Nubank: From Startup to Scale
This article chronicles Nubank’s architectural evolution—detailing how strategic technology choices, cloud‑native platforms, micro‑service design, and data‑engineering practices were leveraged across startup, growth, consolidation, and expansion phases to achieve massive scalability and business agility.
Lucas Cavallanti, Chief Software Engineer at Nubank, explains the concept of leverage in software architecture, defining it as the value gained relative to the investment of decisions and technical debt.
Background : Nubank is a leading Latin American fintech with 35 million customers, processing billions of Kafka messages and HTTP requests across hundreds of micro‑services.
Overview : The company’s journey is divided into four phases—Startup (focus on time‑to‑market), Growth (resilience and adaptability), Consolidation (reliability and observability), and Expansion (flexibility and scalability).
Startup (2013‑2015) : Early decisions emphasized rapid delivery using lightweight technologies—Datomic as an immutable ledger, Clojure on the JVM for functional programming, a hexagonal architecture, and Kafka for messaging. Cloud services (AWS + CloudFormation) and third‑party credit‑card solutions were adopted to minimize operational overhead.
Growth (2015‑2016) : To handle unexpected rapid growth, Nubank introduced sharding of the entire infrastructure, built robust CI/CD pipelines, migrated to Docker, and began internalizing critical capabilities such as credit‑card processing and customer support.
Consolidation (2017‑2018) : The team migrated to Kubernetes for better scalability, implemented Prometheus + Grafana monitoring, created internal tools like NuCLI for operational tasks, and built a data platform using Scala, Spark, and an ETL pipeline to serve analytics and machine‑learning models.
Expansion (2019‑present) : A horizontal platform team abstracts infrastructure for engineers, while a business‑platform team provides domain‑specific APIs (e.g., banking‑as‑a‑service, credit‑lending). This enables rapid product development across multiple countries and acquisitions.
Q&A Highlights : The decision to adopt micro‑services was driven by domain complexity; team structures include engineers, BAs, product managers, and data scientists; ETL tooling relies on Spark on Mesos clusters; and streaming was initially limited due to Kafka’s maturity, leading to a batch‑oriented approach.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Architects Research Society
A daily treasure trove for architects, expanding your view and depth. We share enterprise, business, application, data, technology, and security architecture, discuss frameworks, planning, governance, standards, and implementation, and explore emerging styles such as microservices, event‑driven, micro‑frontend, big data, data warehousing, IoT, and AI architecture.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
