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
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.
Part of the track
Paving the Road: Enhancing Developer Productivity and Experience Hosted by Nayana Shetty Principal Engineer @LEGO_GroupFrom 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 Engineering Enablement teams have big dreams to support developers across their organization by smoothing sharp edges to help teams achieve speed and stability within the services they provide. 11:50 Fleming (3rd Fl.) Session platforms Available, Affordable, Attractive: Enabling Platform Adoption Olga Sermon Senior Engineering Manager @Superawesome This talk is focusing on the problem of adoption: what we at SuperAwesome have tried so far, what worked well, what did not work and what we did to overcome those challenges. 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 In this talk, we'll explore the benefits and challenges of how organizations can make the shift from a traditional infrastructure team to 'platform as a product'. We'll focus on how to use a product mindset to your platform team with simple tips, even when you don't have a product… 14:55 Fleming (3rd Fl.) Session graphql Go Far, Go Together - Growing the Netflix Federated Graph Kavitha Srinivasan Senior Software Engineer @Netflix 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. 16:10 Fleming (3rd Fl.) Session platforms Using Customer Obsession to Drive Platform Adoption Varun Achar Director of Engineering @Razorpay Investing in Platform teams is a natural pitstop that organizations need to take as they scale. However, to realise the value of investing in Platform teams often take a large amount of time.