Story
Prime Video: redrawing a stream monitor
Prime Video's stream monitor stalled at a fraction of its load and cost too much. Where should its boundaries go?
10 minMediumMembers lesson
Membership isn’t open yet. The free lessons are open — 18 of them.
What you'll be able to do
- 1Predict how latency and availability change when one in-process checkout call becomes a chain of synchronous service calls — delays add per hop, availabilities multiply.
- 2Predict whether a proposed split will become a distributed monolith from its call pattern, shared data and deploy coupling — chatty calls, cross-service transactions, lockstep releases.
- 3Explain what one deployable unit gives for free — in-process calls, one transaction across features, one pipeline, easy refactoring — and what each would cost once split.
- 4Predict which of a struggling monolith's pains a split into services would relieve — deployment ones (a shared release, scaling everything, one team blocking another) — and which it wouldn't — structure ones (tangled code with no boundaries).
- 5Choose between a (modular) monolith and microservices for a team from its size, how well the domain is understood and which parts truly need to release, scale or fail separately.
Inside the lesson
- steps
- 5
- questions
- 5
- simulations
- 0
Step 1 · The setup
Prime Video offers thousands of live streams. To catch problems customers would see or hear — a frozen picture, blocky corruption, sound drifting out of sync with the video — a team built a tool that watches the streams customers view and raises an alert in real time when it finds a fault.
The tool worked, but it was never built for thousands of streams at once. When the team tried to grow it, it got very expensive, and it hit a ceiling well short of the streams it was meant to watch. Decide what you would change, then see what they did.
Steps 2–5 are for members