Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building reliable APIs
Search
mattheath
July 10, 2018
Programming
0
310
Building reliable APIs
mattheath
July 10, 2018
Tweet
Share
More Decks by mattheath
See All by mattheath
Breaking down problems
mattheath
2
370
Contexts in Context
mattheath
0
220
A guided journey of Cloud Native
mattheath
1
160
Modelling prototypes to critical systems with Cassandra
mattheath
0
250
Building a Cloud Native Bank
mattheath
1
220
Building a Cloud Native Bank
mattheath
0
370
Go and Microservices - NDC London 2018
mattheath
0
270
Architecting a Bank from scratch
mattheath
1
830
Kubernetes in Context
mattheath
0
250
Other Decks in Programming
See All in Programming
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
300
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.7k
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
370
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
160
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
110
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
6
2.1k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
210
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.3k
AIコーディングエージェント(Gemini)
kondai24
0
190
20 years of Symfony, what's next?
fabpot
2
330
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
37
24k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
73
5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Designing Experiences People Love
moore
143
24k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Making Projects Easy
brettharned
120
6.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
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