Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Building reliable APIs
Search
mattheath
July 10, 2018
Programming
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building reliable APIs
mattheath
July 10, 2018
More Decks by mattheath
See All by mattheath
Breaking down problems
mattheath
2
430
Contexts in Context
mattheath
0
270
A guided journey of Cloud Native
mattheath
1
200
Modelling prototypes to critical systems with Cassandra
mattheath
0
310
Building a Cloud Native Bank
mattheath
1
290
Building a Cloud Native Bank
mattheath
0
430
Go and Microservices - NDC London 2018
mattheath
0
310
Architecting a Bank from scratch
mattheath
1
890
Kubernetes in Context
mattheath
0
300
Other Decks in Programming
See All in Programming
R8 の設定見直しでアプリサイズ削減
andpad
0
230
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
200
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
980
Seven New Principles of Software Engineering
yegor256
0
290
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.2k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
400
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
180
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
120
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
170
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
Kotlinの15年とServer-Side Kotlin
n_takehata
1
160
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
4
5.5M
A Soul's Torment
seathinner
8
3.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Documentation Writing (for coders)
carmenintech
77
5.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Transcript
Building Reliable APIs Matt Heath, Monzo
Matt Heath, Monzo @mattheath
None
None
monoliths traditional dev
None
What do we mean by “reliable”?
None
Contacting us Using your debit card Making payments Freezing your
card Viewing your balance Viewing recent transactions Sending emoji reactions Setting your profile picture Viewing merchant logos
Contacting us Using your debit card Making payments Freezing your
card Viewing your balance Viewing recent transactions Sending emoji reactions Setting your profile picture Viewing merchant logos
?
Application
Application
APPLICATION Application
None
None
?
None
API
API
API Gateway API Service API Service API Service API Service
API Service API Service API Service API Service
None
None
None
API Gateway Accounts Cards Pots Emojis Payments …
API Gateway Accounts Cards Pots Emojis Payments … New Exciting
API!!
Cards Pots Emojis Payments … API Gateway Accounts New Exciting
API!!
Cards Pots Emojis Payments … API Gateway Accounts New Exciting
API!!
API Gateway Accounts Cards Pots Emojis Payments … New Exciting
API!!
None
pod
pod container container container
pod API service
pod
pod
pods replica set
replica set pods deployment
pods replica set deployment
pods replica set deployment change
deployment change old pods old replica set
deployment change old pods old replica set new replica set
deployment change old pods old replica set new replica set
new pod
deployment change old pods old replica set new replica set
new pod
deployment change old replica set new pods new replica set
deployment change new replica set new pods
deployment replica set pods
pods
pods service
pods service kubedns
pods service routing - static cluster IP managed replicas resource
allocations rollout strategies liveness checks anti-affinity, etc kubedns routing - “service name”
?
machine
machine machine
machine machine machine machine machine machine
machine machine machine machine machine machine Kubernetes
machine machine machine machine machine kubelet
kubelet kubelet kubelet kubelet kubelet kubelet
kubelet kubelet kubelet kubelet kubelet kubelet Kubernetes Master
kubelet kubelet kubelet kubelet kubelet kubelet Kubernetes Master etcd
kubernetes
kubernetes service service service service service service service service service
service
kubernetes service service service service service service service service service
service
kubernetes service service service service service service service service service
service
kubernetes service service service service service service service service service
service
kubernetes service service service service service service service service service
service service service service
kubernetes service service service service service service service service service
service
Reliable inter-service communication
Service Service
Service Service Service Service
Service Service Service Service Kubernetes Service
Service Discovery Load Balancing Timeouts and Expirations Retries Rate Limiting
Connection Pooling Circuit Breaking Failure Detection Metrics and Tracing Interrupts Context Propagation
Service Discovery Load Balancing Timeouts and Expirations Retries Rate Limiting
Connection Pooling Circuit Breaking Failure Detection Metrics and Tracing Interrupts Context Propagation
Service Service Service Service ?
Service Service Service Service linkerd
Service linkerd
Service linkerd service discovery
Service Service Service Service linkerd service discovery
Service Service Service Service linkerd
Service Service Service Service linkerd
Service Service Service Service linkerd
Service Service Service Service linkerd
Event Driven Architecture
Service A Service B Load Balancer Edge Gateway API Service
API Service Service A Service B Load Balancer Edge Gateway
API Service Service A Service B Load Balancer Edge Gateway
Service D Service E
API Service Service A Service B Load Balancer Edge Gateway
Service C Service D Service E
API Service Service A Service B Load Balancer Edge Gateway
Service C Service D Service E
API Service Service A Service B Load Balancer Edge Gateway
Service C Service D Service E
API Service Service A Service B Load Balancer Edge Gateway
Service C Service D Service E
API Service Service A Service B Load Balancer Edge Gateway
Service C Service D Service E Service D
API Service Service A Service B Load Balancer Edge Gateway
Service C Service D Service E Service D
API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed
apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed
apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed
apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed
apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed
apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed
apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
None
API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed
apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
None
Critical Path
How do we make systems reliable?
Masterless systems No single points of failure Simple / small
components Minimise critical path Queue deferrable tasks Automated failure correction
None
None
None