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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
mattheath
July 10, 2018
Programming
340
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
400
Contexts in Context
mattheath
0
240
A guided journey of Cloud Native
mattheath
1
190
Modelling prototypes to critical systems with Cassandra
mattheath
0
280
Building a Cloud Native Bank
mattheath
1
270
Building a Cloud Native Bank
mattheath
0
400
Go and Microservices - NDC London 2018
mattheath
0
290
Architecting a Bank from scratch
mattheath
1
860
Kubernetes in Context
mattheath
0
280
Other Decks in Programming
See All in Programming
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
220
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
130
net-httpのHTTP/2対応について
naruse
0
470
The NotImplementedError Problem in Ruby
koic
1
720
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
110
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
390
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
510
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
330
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Claude Code のすすめ
schroneko
67
230k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Ruling the World: When Life Gets Gamed
codingconduct
0
250
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
Paper Plane
katiecoart
PRO
1
51k
Designing for Timeless Needs
cassininazir
1
250
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
What's in a price? How to price your products and services
michaelherold
247
13k
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