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 Composable Services
Search
Noah Kantrowitz
July 20, 2014
Technology
0
51
Building Composable Services
Noah Kantrowitz
July 20, 2014
Tweet
Share
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
What Python Can Learn From Other Languages
coderanger
0
37
What Python Can Learn From Other Languages (with notes)
coderanger
0
120
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
180
Swiss Army Django: Small Footprint ETL - DjangoCon US
coderanger
0
44
How to look at space: PyCon AU
coderanger
0
85
Swiss Army Django: Small Footprint ETL
coderanger
0
71
Swiss Army Django: Small Footprint ETL (with notes)
coderanger
0
66
Minimum Viable Kubernetes
coderanger
0
30
Minimum Viable Kubernetes (with notes)
coderanger
0
380
Other Decks in Technology
See All in Technology
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
110
AndroidデバイスにFTPサーバを建立する
e10dokup
0
240
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
7
1k
自動テストの世界に、この5年間で起きたこと
autifyhq
10
7.1k
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
6
4.1k
Ask! NIKKEI RAG検索技術の深層
hotchpotch
13
2.8k
AWSでRAGを実現する上で感じた3つの大事なこと
ymae
3
1k
第13回 Data-Centric AI勉強会, 画像認識におけるData-centric AI
ksaito_osx
0
360
サーバーレスアーキテクチャと生成AIの融合 / Serverless Meets Generative AI
_kensh
12
3k
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
1
1.1k
まだ間に合う! エンジニアのための生成AIアプリ開発入門 on AWS
minorun365
PRO
4
580
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
890
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
YesSQL, Process and Tooling at Scale
rocio
171
14k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Done Done
chrislema
182
16k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Facilitating Awesome Meetings
lara
51
6.2k
Code Reviewing Like a Champion
maltzj
521
39k
For a Future-Friendly Web
brad_frost
176
9.5k
Building Your Own Lightsaber
phodgson
104
6.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Transcript
Building Composable Services Noah Kantrowitz
What? Why? How? Perils? Press Start
What? World 1-1
What is a Function?
f(x, y) = z
What is Idempotence?
f(x) = f(f(x))
What is Composable?
f(x) g(x) f(g(x))
req_user(x) user_id(x) user_id(req_user(x))
post('http://login') get('http://search')
Why? World 1-2
Availability
Scaling
Testing
Logistics
How? World 1-3
Frameworks Storage Rich Data Discovery Resilience Containers Level Up Select
a Skill
µ-frameworks
Flask (Python) Sinatra (Ruby) Express (JavaScript)
ZeroMQ nanomsg ProtoBufs Cap'nProto
Data Storage (aka state)
AP Database
Cache is the enemy
Rich Data {id: me, cart: http...}
Hypermedia APIs
Service Discovery
Self-Organization
DNS nslookup('login')
ZooKeeper CP Database
Etcd Serf Consul Archaius
Resilience
Timeouts Idempotent Retries
post('chpw', nonce: 314)
Any service can be down
Async Messaging Queues
AMQP Kafka
Containers
Less RAM Less Problems
LXC Jails Zones Docker/Mesos
Security Isolation
Immutable Deployment
Logical Boundaries
Perils? World 1-4
Cascade Failures
Poor Visibility
Health & Metrics Central Logging Dashboards
Complex Deployments
Minimalist Self-organizing Fault-tolerant
Thank You
Noah Kantrowitz @kantrn coderanger.net Questions?