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.
What's the focus of your work these days?
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.
What's the motivation for your talk at QCon London 2023?
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.
How would you describe your main persona and target audience for this session?
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.
Is there anything specific that you'd like people to walk away with after watching your session?
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.
Senior Software Engineer @Netflix
Kavitha Srinivasan is a senior software engineer on the API Systems Team at Netflix. Over the past few years, she has been working on the Domain Graph Services framework, an open source framework for building Spring Boot based GraphQL services, and related GraphQL tooling. She is passionate about great developer experience and has been involved in driving the education and adoption of federated GraphQL at Netflix.