Monzo's system design

0/4
☰
Monzo · system design

Monzo is a UK bank built from thousands of small Go services on AWS, plugged into Mastercard and Faster Payments through its own data centers, with one ledger as the source of truth and a backup bank on another cloud.

+ The whole system in one paragraph

Monzo is a UK bank that decides every card payment and transfer in its own software. Payments arrive from Mastercard and the UK's Faster Payments hub and cross into about 3,000 small services on AWS, where one ledger says whether the money is there. Anything that can wait happens afterwards, and a tiny backup bank stands by on another cloud.

15.2M
customers (FY2026, year to March 2026)[1]
10.4M
monthly active users (FY2026)[1]
~3,000
microservices in the Primary Platform (2025)[17]

In this lesson

4 chapters · ~8 min · a quick check in each

Everything is on this page — just scroll down ↓

Chapter 1 of 4

The whole system

1
Requirements

What it must do — and how well

Eight sticky notes: the four things Monzo's system must do (yellow) and the four qualities it must keep while doing them (blue). Every box on this page exists to meet one of these.

ⓘ Details & sources

Yellow = what the system must do. Blue = how well it must do it.[2][3][13][8][17]

Approve or decline acard payment in thetime the networkallows.Never lose a penny:one double-entryledger.Show it in the appthe moment ithappens.Move money to any UKbank in near realtime.Available 24x7, nomatter what happens.Scale to hundreds ofmillions ofcustomers.Each service reachesonly the few itneeds.Keep paying evenwhen the platform isdown.
2
Architecture

Monzo, from the card to the ledger

The whole bank on one page. Payments arrive from Mastercard and Faster Payments at Monzo's own data centers, then cross into thousands of small services on AWS, where one ledger keeps the money.

ⓘ Details & sources

Left: the payment networks and Monzo's own data centers. Right: the Primary Platform on AWS. Click any piece; play a flow.[18][15][17]

Watch it happen:
Primary Platform — AWS123if AWS fails3send money4quorum4events66push notification6Your cardtap at a shopMastercardthe card networkFaster Paymentsthe UK hubMonzo appyour phoneData centersMonzo's own racksStand-inbackup bank, on GCPEdge servicestalk to the DCsApp APIthe app's front doormodelCard processingvalidators decideTransfersown FPS processorLedgerevery money movementCassandraquorum: 2 of 3 agreeKafka + NSQasync messagesFeed + pushbefore the receipt
clientedge / CDNload balancerserviceworkerdatabasequeueexternal dashed border = simplified model
123456
Step 1 of 6

You tap. The terminal's authorization message goes through the shop's bank to Mastercard, which routes it to the bank that issued the card: Monzo.

Quick check

Monzo has 15.2M customers and 10.4M monthly active users. Roughly what share open it in a month?

Pick one — or just keep scrolling, it's not graded.

Keep going — it's free

Create your free account to unlock the rest of Monzo's system design, keep your progress and pick up right where you left off.

  1. 2Payments & the app
  2. 3Inside the platform
  3. 4Growth & failures
Questions & comments

Ask anything about this system, or share how you'd design it.

Log in to join the conversation