$30 off During Our Annual Pro Sale. View Details »
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
56
Building Composable Services
Noah Kantrowitz
July 20, 2014
Tweet
Share
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
The Long Hello World
coderanger
0
9
The Long Hello World (with notes)
coderanger
0
40
What Python Can Learn From Other Languages
coderanger
0
73
What Python Can Learn From Other Languages (with notes)
coderanger
0
190
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
280
Swiss Army Django: Small Footprint ETL - DjangoCon US
coderanger
0
72
How to look at space: PyCon AU
coderanger
0
120
Swiss Army Django: Small Footprint ETL
coderanger
0
110
Swiss Army Django: Small Footprint ETL (with notes)
coderanger
0
92
Other Decks in Technology
See All in Technology
手動から自動へ、そしてその先へ
moritamasami
0
200
HIG学習用スライド
yuukiw00w
0
110
Eight Engineering Unit 紹介資料
sansan33
PRO
0
5.7k
AI (LLM) を活用する上で必須級のMCPをAmazon Q Developerで学ぼう / 20251127 Ikuma Yamashita
shift_evolve
PRO
2
100
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
9.9k
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
160
こがヘンだよ!Snowflake?サービス名称へのこだわり
tarotaro0129
0
110
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.3k
シンプルを極める。アンチパターンなDB設計の本質
facilo_inc
1
1k
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
550
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
460
21st ACRi Webinar - AMD Presentation Slide (Nao Sumikawa)
nao_sumikawa
0
200
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.6k
How to Ace a Technical Interview
jacobian
280
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Why Our Code Smells
bkeepers
PRO
340
57k
Done Done
chrislema
186
16k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Facilitating Awesome Meetings
lara
57
6.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
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?