How Netflix Scales its API with GraphQL Federation

Vergoogly
3 min readNov 12, 2020

--

https://www.ecoastcc.com/vme/s-v-s1.html
https://www.ecoastcc.com/vme/s-v-s2.html
https://www.ecoastcc.com/vme/t-v-c1.html
https://www.ecoastcc.com/vme/t-v-c2.html
https://www.ecoastcc.com/vme/t-v-c3.html
https://www.ecoastcc.com/vme/u-v-u1.html
https://www.ecoastcc.com/vme/u-v-u2.html
https://www.ecoastcc.com/vme/s-v-b1.html
https://www.ecoastcc.com/vme/s-v-b2.html
https://www.ecoastcc.com/vme/s-v-h1.html
https://www.ecoastcc.com/vme/s-v-h2.html
https://www.ecoastcc.com/vme/s-v-l1.html
https://www.ecoastcc.com/vme/s-v-l2.html
https://www.ecoastcc.com/vme/s-v-o-t1.html
https://www.ecoastcc.com/vme/s-v-o-t2.html
https://www.ecoastcc.com/vme/s-v-q1.html
https://www.ecoastcc.com/vme/s-v-q2.html
https://www.ecoastcc.com/vme/s-v-r-t1.html
https://www.ecoastcc.com/vme/s-v-r-t2.html
https://www.ecoastcc.com/vme/s-v-s-tv1.html
https://www.ecoastcc.com/vme/s-v-s-tv2.html
https://www.ecoastcc.com/vme/i-v-e1.html
https://www.ecoastcc.com/vme/i-v-e2.html
https://www.ecoastcc.com/vme/i-v-e3.html
https://www.ecoastcc.com/vme/i-v-e4.html
https://www.ecoastcc.com/vme/n-v-s1.html
https://www.ecoastcc.com/vme/n-v-s2.html
https://www.ecoastcc.com/vme/s-v-s1.html
https://www.ecoastcc.com/vme/s-v-s2.html
https://www.ecoastcc.com/vme/s-v-s3.html
https://www.ecoastcc.com/vme/u-v-s1.html
https://www.ecoastcc.com/vme/u-v-s2.html
https://www.ecoastcc.com/vme/u-v-s3.html
https://www.ecoastcc.com/vme/u-v-s4.html
https://www.ecoastcc.com/vme/u-v-s5.html
https://www.ecoastcc.com/vme/a-v-p-s1.html
https://www.ecoastcc.com/vme/a-v-p-s2.html
https://www.ecoastcc.com/vme/a-v-p-s3.html
https://www.ecoastcc.com/vme/a-v-p-s4.html
https://www.ecoastcc.com/vme/a-v-p-s5.html
https://www.ecoastcc.com/vme/b-v-e-s1.html
https://www.ecoastcc.com/vme/b-v-e-s2.html
https://www.ecoastcc.com/vme/b-v-e-s3.html
https://www.ecoastcc.com/vme/b-v-e-s4.html
https://www.ecoastcc.com/vme/e-v-b-s1.html
https://www.ecoastcc.com/vme/e-v-b-s2.html
https://www.ecoastcc.com/vme/e-v-b-s3.html
https://www.ecoastcc.com/vme/e-v-b-s4.html
https://www.ecoastcc.com/vme/e-v-b-s5.html
https://www.ecoastcc.com/vme/p-v-a-s1.html
https://www.ecoastcc.com/vme/p-v-a-s2.html
https://www.ecoastcc.com/vme/p-v-a-s3.html
https://www.ecoastcc.com/vme/p-v-a-s4.html
https://www.ecoastcc.com/vme/p-v-a-s5.html
https://www.ecoastcc.com/vme/e-v-i1.html
https://www.ecoastcc.com/vme/e-v-i2.html
https://www.ecoastcc.com/vme/s-v-n1.html
https://www.ecoastcc.com/vme/s-v-n2.html
https://www.ecoastcc.com/vme/s-v-t1.html
https://www.ecoastcc.com/vme/s-v-t2.html
https://www.ecoastcc.com/vme/w-v-u1.html
https://www.ecoastcc.com/vme/w-v-u2.html
https://www.ecoastcc.com/vme/w-v-u3.html
https://www.ecoastcc.com/vme/w-v-u4.html
https://www.robertfranklindmd.com/rob/w-v-b4.html
https://www.robertfranklindmd.com/rob/w-v-b3.html
https://www.robertfranklindmd.com/rob/w-v-b2.html
https://www.robertfranklindmd.com/rob/w-v-b1.html
https://www.robertfranklindmd.com/rob/w-v-a4.html
https://www.robertfranklindmd.com/rob/w-v-a3.html
https://www.robertfranklindmd.com/rob/w-v-a2.html
https://www.robertfranklindmd.com/rob/w-v-a1.html
https://www.robertfranklindmd.com/rob/x-v-c2.html
https://www.robertfranklindmd.com/rob/x-v-c1.html
https://www.robertfranklindmd.com/rob/x-v-b2.html
https://www.robertfranklindmd.com/rob/x-v-b1.html
https://www.robertfranklindmd.com/rob/x-v-a2.html
https://www.ecoastcc.com/vme/w-v-b4.html
https://www.ecoastcc.com/vme/w-v-b3.html
https://www.ecoastcc.com/vme/w-v-b2.html
https://www.ecoastcc.com/vme/w-v-b1.html
https://www.ecoastcc.com/vme/w-v-a4.html
https://www.ecoastcc.com/vme/w-v-a3.html
https://www.ecoastcc.com/vme/w-v-a2.html
https://www.ecoastcc.com/vme/w-v-a1.html
https://www.ecoastcc.com/vme/x-v-c2.html
https://www.ecoastcc.com/vme/x-v-c1.html
https://www.ecoastcc.com/vme/x-v-b2.html
https://www.ecoastcc.com/vme/x-v-b1.html
https://www.ecoastcc.com/vme/x-v-a2.html
https://www.ecoastcc.com/vme/g-v-a1.html
https://www.ecoastcc.com/vme/g-v-a2.html
https://www.ecoastcc.com/vme/g-v-a3.html
https://www.ecoastcc.com/vme/g-v-a4.html
https://www.ecoastcc.com/vme/g-v-a5.html
https://www.ecoastcc.com/vme/g-v-a6.html
https://www.ecoastcc.com/vme/m-v-c1.html
https://www.ecoastcc.com/vme/m-v-c2.html
https://www.ecoastcc.com/vme/m-v-c3.html
https://www.ecoastcc.com/vme/m-v-c4.html

UI developers love the simplicity of working with one conceptual API for a large domain. Back-end developers love the decoupling and resilience offered by the API layer. But as our business has scaled, our ability to innovate rapidly has approached an invisible asymptote. As we’ve grown the number of developers and increased our domain complexity, developing the API aggregation layer has become increasingly harder.

In order to address this rising problem, we’ve developed a federated GraphQL platform to power the API layer. This solves many of the consistency and development velocity challenges with minimal tradeoffs on dimensions like scalability and operability. We’ve successfully deployed this approach for Netflix’s studio ecosystem and are exploring patterns and adaptations that could work in other domains. We’re sharing our story to inspire others and encourage conversations around applicability elsewhere.

Case Study: Studio Edge

Intro to Studio Ecosystem

Netflix is producing original content at an accelerated pace. From the time a TV show or a movie is pitched to when it’s available on Netflix, a lot happens behind the scenes. This includes but is not limited to talent scouting and casting, deal and contract negotiations, production and post-production, visual effects and animations, subtitling and dubbing, and much more. Studio Engineering is building hundreds of applications and tools that power these workflows.

--

--