You are viewing content from a past/completed QCon
Session

Using DevEx to Accelerate GraphQL Federation Adoption @Netflix

What You'll Learn

1Find out how Netflix approached introducing GraphQL to their teams.

2Learn how the developer experience plays a major role in a migration.


In this talk, we describe how we enabled a large organization’s fragmented API offerings to unify under a fully federated GraphQL architecture by focusing early on a great developer experience.

Not only does this help reduce the learning curve associated with federated GraphQL, it also provides teams with the required incentive to prioritize migrations. We were thus able to transition from a monolithic GraphQL API architecture to having over 20 teams opt into a federated model that distributed the ownership of the graph and the operations.

Apart from easing the onboarding process, our goal was to minimize the operational burden for each team maintaining their own GraphQL service. We achieved this by improving the ergonomics of developing a federated GraphQL service, in addition to providing out-of-the-box integration with the Netflix ecosystem. Features like security, logging, metrics and tracing are available for operational insights. A paved path for adoption thus ensures consistency across various teams, and improves our ability as a platform provider to support and debug across service boundaries at scale.

While we use some open source components, we’ve also built our own framework and tools in-house. Building custom solutions has the risk of re-inventing the wheel. We will discuss how we made certain Build vs Buy (open source) trade-offs and share our learnings. We will also talk about the socio-technical aspects of working with many teams on a single shared schema.

What do you work on today?

Kavitha: I'm part of the developer experience team at Netflix, and our current focus is to help with the adoption of GraphQL. We became part of this larger architecture migration, which had to do with migrating from a monolithic architecture to a federated architecture, which we go into a little bit of detail in the talk. We help teams by making it easy for them to onboard quickly, giving them all the tools, the framework, and all the necessary things they need, to help get their services up and running quickly and be able to migrate onto this new architecture. Developer experience, mainly helping teams develop as quickly as they can and making them more efficient and productive.

Paul: If I can add a concrete example of something that we're working on a lot. I'm in the same team, as Kavitha said, we are completely doing the same things. But for me, it means that I'm spending most of my time developing and maintaining a Java framework for doing GraphQL in Java. On the server side of GraphQL, especially what I'm doing.

What do you want people to take away from the talk? What are your goals for the talk?

Kavitha: Our main goal is to help folks understand how we by focusing on developer experience, we were able to help many teams with this migration or any onboarding onto any new technology. We want to be able to share our experience with the rest of the community as to how we went about doing it. The things that Paul already mentioned, we wrote a framework that sits on top of graphql-java, and that provides a lot more conveniences, so folks completely new to the technology can quickly get onboarded and get started and up and running. By helping developers write their services, build their apps, test and provide that end-to-end experience we were able to get to scale this across several teams and help them migrate very quickly. The main takeaway from this talk is to basically go into the details of how we went about doing that and how focusing on developer experience can really help teams on a large scale.

Paul: On top of that, if you do have a developer experience team or a few folks who are focused on developer experience, we show what are the things that help you decide what to focus on and what to deliver to your users.

How much does GraphQL figure into this, or it's mostly about DevEx?

Paul: The focus should be on developer experience and how to do DevEx right. That is the takeaway we want folks to get from the talk. However, we use the GraphQL migration as an example and you get some insights into the things we did. That'll definitely show some things that would be interesting for someone who was interested in GraphQL and specifically also in GraphQL Federation.

Kavitha: One thing I wanted to add to that is we do not so much go into the specifics of GraphQL with Federation because we do have our colleagues give another talk ("How Netflix Scales Its API with GraphQL Federation") that goes into the details of the federation. The focus of our talk, as Paul said, is purely DevEx, citing this migration as an example.

Netflix is a big company. How do smaller companies achieve DevEx to make the developer experience better for their developers?

Kavitha: Our team is just a few developers on this particular project. We mention this in the talk as well. The migration involved over 30 teams. Over the course of the year, almost 200 developers or so had to onboard onto this architecture. We tried to make sure that we provide them with all the tools necessary. That means focusing on all the different aspects, making it easy to onboard, providing great documentation. That's a big key factor in our success, making it as self-serviceable as possible with great documentation and making the tools easy to use. That's how we were able to scale. In my view, I think even for smaller companies, you don't really need a large team to provide a good developer experience. I think the key takeaway from this talk, would be if even if you have a small team or even one or two developers, focused on taking a step back, not just work as part of a single team, but play that crosscutting role, you can identify patterns across different users and use cases, that can go a long way in helping developer experience be very effective.


SPEAKER

Paul Bakker

Senior Software Engineer @Netflix, Author of "Modular Cloud Apps with OSGi"

Paul is a senior software engineer at Netflix, with a focus on developer experience. He has a long history in the Java community, is a Java Champion and author of “Java 9 Modularity” and “Modular Cloud Apps with OSGi”, both published by O’Reilly. He has a passion for sharing knowledge and is a frequent conference speaker.

Find Paul Bakker at:

SPEAKER

Kavitha Srinivasan

Senior Software Engineer @Netflix

Kavitha Srinivasan is a senior software engineer at Netflix. With more than 15 years of experience in distributed systems, she is currently working on developer experience to facilitate the growing adoption of GraphQL.

Find Kavitha Srinivasan at:

From the same track

View full Schedule

3 weeks of live software engineering content designed around your schedule.

Don’t miss out! Save your seat now

Register
TOP