Go Far, Go Together - Growing the Netflix Federated Graph

QCon London 2023

Session graphql

Go Far, Go Together - Growing the Netflix Federated Graph

Wednesday Mar 29 / 02:55PM BST, Fleming (3rd Fl.)

Abstract

Around 2019, Netflix started experimenting with a federated GraphQL architecture to build a unified GraphQL API. This was a major undertaking involving several teams. To facilitate adoption, we invested heavily in good developer experience and education. We built a suite of platform tools to enable development workflows, including the now open-sourced Domain Graph Services Framework (DGS) - a Spring Boot framework based on graphql-java, to enable quick and easy implementation of GraphQL services for Java developers. 

Today, we have grown the graph significantly with almost over 250 domain graph services sharing thousands of types. We’ve encountered many challenges along the way, and continue to evolve our tooling ecosystem to scale our best practices and development workflows.

In this talk, I will discuss the many challenges related to enforcing these best practices and the solutions we built to help ease the burden on developers. In our experience, building an opinionated, developer-friendly ecosystem is a sustainable way to scale not just the graph, but the developers working with it as well.

Interview

The past couple of years, I've been very focused on Federated GraphQL adoption at Netflix. As part of that, I've been working on the Domain Graph Service framework, which is a framework for implementing GraphQL services in Java, and related tools.

The motivation for my talk is to share our Federated GraphQL adoption journey and talk about the GraphQL platform we have built to facilitate the same. We started with a  small platform and gradually scaled that over the course of adoption. We now have multiple federated graphs within Netflix and more than 60 teams using our platform. I’ll also be sharing the kind of challenges we faced as we scaled adoption.

I'd say the persona is more targeted towards folks interested in looking for ways to enhance day to day productivity for developers, or even more specific situations such as to facilitate architecture migrations.

Specifically, for us, a key learning is to recognize the importance of investing in good developer experience. We were able to greatly accelerate the adoption of our new architecture by providing a cohesive end-to-end experience. Sometimes it makes sense to build and customize and other times it is better to use what is widely available in the community. A lot of our rationale behind building out these custom tools was wanting to provide Netflix-specific integrations.

Ultimately, what matters is to identify what helps developers be more productive on a day-to-day basis. As part of this effort, we've also open sourced a part of the platform that we've built, and so that would be another take away for folks working with GraphQL to try out. 

Topics

graphql data access case study best practices
76% senior dev or higher
1:11 speaker ratio
60+ practitioners

QCon London 2023 is a three day conference for senior software engineers, architects and team leads. An international program committee of working engineers selects every session. Patterns and practices, not products and pitches.

Share

From the same track

Wednesday 29 March

10:35 Fleming (3rd Fl.) Session Teamwork 5 Principles for Enablement with (Almost) Nothing to do with Building Tools Steph Egan Principal Software Engineer @BBC 11:50 Fleming (3rd Fl.) Session platforms Available, Affordable, Attractive: Enabling Platform Adoption Olga Sermon Senior Engineering Manager @Superawesome 13:40 Fleming (3rd Fl.) Session platforms How to Apply a Product Mindset to Your Platform Team Tomorrow Jelmer Borst PM Platform Products @Picnic Technologies 14:55 Fleming (3rd Fl.) Session graphql Go Far, Go Together - Growing the Netflix Federated Graph Kavitha Srinivasan Senior Software Engineer @Netflix 16:10 Fleming (3rd Fl.) Session platforms Using Customer Obsession to Drive Platform Adoption Varun Achar Director of Engineering @Razorpay