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 Composable Services
Search
Noah Kantrowitz
July 20, 2014
Technology
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building Composable Services
Noah Kantrowitz
July 20, 2014
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
Fine Print: Intellectual Property for Engineers
coderanger
0
21
Fine Print: Intellectual Property for Engineers (with notes)
coderanger
0
44
I Am Bad At Things
coderanger
0
29
I Am Bad At Things (with notes)
coderanger
0
66
The Long Hello World
coderanger
0
46
The Long Hello World (with notes)
coderanger
0
170
What Python Can Learn From Other Languages
coderanger
0
110
What Python Can Learn From Other Languages (with notes)
coderanger
0
280
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
420
Other Decks in Technology
See All in Technology
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
210
今こそ知りたいAmplifyGen2
mkdev10
2
160
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
310
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
430
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
420
しろおびから始める!ログ活用の第一歩
shumei_ito
0
700
継続的なAIコスト最適化
bgpat
1
250
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
1.7k
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
210
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
3
1k
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Amusing Abliteration
ianozsvald
1
330
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Ethics towards AI in product and experience design
skipperchong
2
420
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
450
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Navigating Weather and Climate Data
rabernat
0
550
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.3k
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?