Screens on Shuffle: How Netflix Scales Server‑Driven, Ever‑Changing Pages
summary
Netflix evolves GraphQL into a coarse‑grained server‑driven UI where servers assemble UI from pages → sections → entities and attach decoupled section and entity treatments so one backend can render many device‑specific views. Backward compatibility uses a client‑sent capabilities input that tells the server what treatments to emit, and interactive changes use schema‑encoded dynamic triggers (playback end, navigate, refresh section). Backend services talk gRPC/proto; GraphQL maps those protos to the page schema.
AI-written summary · about
chapters (16)
- 0:00Introduction and speaker
- 1:03Problems with legacy APIs
- 3:35What is server-driven UI?
- 6:23Coarse-grained server-driven UI
- 9:10Schema structure and hierarchy
- 11:16Backward compatibility with capabilities
- 13:43Client logic and dynamic triggers
- 16:34Building a new feature example
- 19:04Key learnings and best practices
- 22:13When server-driven UI fits
- 23:38Q&A on triggers and events
- 25:50Q&A on capabilities and schema
- 27:14Q&A on GraphQL and federation
- 29:18Q&A on new features and client releases
- 30:21Q&A on analytics and tracking
- 31:24Q&A on architecture and actions
related talks
28mPlaying to Win: Why Netflix Platform Engineering Chose Fed GraphQL
25mScaling with Server Driven UI
07mshare how avoid these GraphQL pitfalls
34mServer Driven UIs: the future of cross-platform rendering
30mThe Netflix Domain Graph Service Framework - OSS GraphQL for Spring Boot
24mServer-Driven UI with Jetpack Compose and GraphQL
29mUsing server-driven UI to rapidly iterate across platforms
18mServer-Driven UI: Building Dynamic React Applications
