Problem Statement & Context
How Problem Statement & Context shapes architecture and interviewer follow-ups for Design Watch History.
Design Watch History — Problem Statement
Watch history is the cross-device memory of what a viewer watched, how far they progressed, and whether a title counts as completed. It powers Continue Watching, Recently Watched, parental controls, and engagement analytics — without storing media bytes.
Interviewers at Netflix, YouTube, and Disney+ use this prompt to test write-heavy progress ingestion, idempotent heartbeats, multi-device sync, denormalized read models, and privacy deletion — not transcoding or CDN edge caching.
Scale anchors
- Netflix: 200M+ subscribers; progress heartbeats every ~30s during playback; profile-scoped history per household
- YouTube: Billions of views/day; resume position on every device; history list with pagination
- Disney+: Kids profiles must not leak watch history to adult profiles
Core journeys
Viewer: start playback → periodic progress PATCH → pause → resume on phone with same offset.
Product: surface Continue Watching row sorted by last_watched_at.
Compliance: user deletes account → purge all progress rows within SLA.
Ops: detect stuck heartbeats, hot user_id shards, and catalog takedown propagation.
Extended interview notes
- Problem Statement & Context note 1: Heartbeat PATCH with monotonic position guards. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 2: Continue-watching is a denormalized read model. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 3: Shard by user_id; hot keys on viral household profiles. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 4: Eventual consistency across devices is acceptable briefly. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 5: GDPR delete and kids-profile isolation are first-class. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 6: Watch history stores playback position — not video bytes. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 7: Heartbeat PATCH with monotonic position guards. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 8: Continue-watching is a denormalized read model. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 9: Shard by user_id; hot keys on viral household profiles. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 10: Eventual consistency across devices is acceptable briefly. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 11: GDPR delete and kids-profile isolation are first-class. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 12: Watch history stores playback position — not video bytes. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 13: Heartbeat PATCH with monotonic position guards. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 14: Continue-watching is a denormalized read model. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 15: Shard by user_id; hot keys on viral household profiles. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 16: Eventual consistency across devices is acceptable briefly. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 17: GDPR delete and kids-profile isolation are first-class. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 18: Watch history stores playback position — not video bytes. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 19: Heartbeat PATCH with monotonic position guards. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 20: Continue-watching is a denormalized read model. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 21: Shard by user_id; hot keys on viral household profiles. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 22: Eventual consistency across devices is acceptable briefly. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 23: GDPR delete and kids-profile isolation are first-class. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 24: Watch history stores playback position — not video bytes. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 25: Heartbeat PATCH with monotonic position guards. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 26: Continue-watching is a denormalized read model. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 27: Shard by user_id; hot keys on viral household profiles. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
- Problem Statement & Context note 28: Eventual consistency across devices is acceptable briefly. Tie decisions to measurable watch-history SLIs (progress write p99 <150ms, continue-watching read p95 <60ms, cross-device sync lag <5s) and name failure isolation boundaries.
Why interviewers care
Watch History interviews reward crisp scope, explicit trade-offs, and failure stories—not generic microservice diagrams.
Interview checkpoint
Name one failure story for Problem Statement & Context that proves you understand real outages, not happy-path diagrams.
Key Highlights
- •Problem Statement & Context: watch progress control plane
- •Heartbeat ingest with idempotent PATCH
- •Continue Watching projection + cache
Section Rescue Kit
Buzzwords to use:
Safe statements:
- "Watch history is a write-heavy metadata plane — playback bytes stay in the CDN path."
- "I would coalesce heartbeats before durable write to cut WCUs roughly 70% at peak."