cloudpatterns.appClassroomKatasWhiteboardBlog
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 minMedium

Members lesson

Membership isn’t open yet. The free lessons are open — 18 of them.

What you'll be able to do

  1. 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.
  2. 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.
  3. 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.
  4. 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).
  5. 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