Measure the Tail | System Design Music Video (Nonfunctional Requirements)
James Software Tips
0:00 / 0:00
Measure the Tail | System Design Music Video (Nonfunctional Requirements)
500 просмотров · 3 нед. назад
James Software Tips
69 подписчиков
500 просмотров · 3 нед. назад
Your average response time looks great. Your slowest users disagree. This is a song about nonfunctional requirements: the social-network home timeline (fan-out on write vs read), response time as a distribution, percentiles and tail latency, queueing and head-of-line blocking, tail latency amplification, SLOs and SLAs, faults vs failures, scaling up vs out, and maintainability.
Every frame is code-rendered in 3D and synced to the lyrics. Part of the System Design Music Videos series.
Chapters
0:00 Day one: the users show up
0:13 Home timelines: fan-out on write vs read
0:37 Percentiles: measure the tail, not the mean
1:09 Throughput, latency, head-of-line blocking
1:24 Tail latency amplification, SLOs and SLAs
1:40 Chorus
2:04 Faults vs failures, fault tolerance, rollbacks
2:27 Scalability: describe the load, scale up vs out
2:44 Maintainability: operability, simplicity, evolvability
3:01 Final chorus
3:24 Fast. Reliable. Scales. Easy to change.
Concepts follow chapter 2 of Designing Data-Intensive Applications (2nd edition) by Martin Kleppmann and Chris Riccomini. Highly recommended.
James Reinhardt | software engineer writing about operating systems, data systems and the craft of building software.