Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building reliable APIs
Search
mattheath
July 10, 2018
Programming
0
260
Building reliable APIs
mattheath
July 10, 2018
Tweet
Share
More Decks by mattheath
See All by mattheath
Breaking down problems
mattheath
2
320
Contexts in Context
mattheath
0
180
A guided journey of Cloud Native
mattheath
1
130
Modelling prototypes to critical systems with Cassandra
mattheath
0
220
Building a Cloud Native Bank
mattheath
1
200
Building a Cloud Native Bank
mattheath
0
330
Go and Microservices - NDC London 2018
mattheath
0
230
Architecting a Bank from scratch
mattheath
1
780
Kubernetes in Context
mattheath
0
220
Other Decks in Programming
See All in Programming
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
960
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.1k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
26
6k
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
1
450
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
180
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
1k
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
20241217 競争力強化とビジネス価値創出への挑戦:モノタロウのシステムモダナイズ、開発組織の進化と今後の展望
monotaro
PRO
0
290
Alba: Why, How and What's So Interesting
okuramasafumi
0
210
Featured
See All Featured
It's Worth the Effort
3n
183
28k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
A Philosophy of Restraint
colly
203
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Invisible Side of Design
smashingmag
299
50k
The Language of Interfaces
destraynor
155
24k
Building Adaptive Systems
keathley
38
2.4k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
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