Federation 101
It can be challenging to serve an enterprise-scale data graph with a single, monolithic GraphQL server. To keep teams productive, you can use Apollo Federation to divide your graph’s implementation across multiple composable services. Learn about federation principles, tooling, and how to implement federation.
- Backend
- Platform
“This collection teaches you how to use Federation to implement separation of concerns and solve pain points like coordination and brittle gateway code.

Developer Advocate
Blog post | Apollo FederationWhat if you could access all of your organization’s data by typing a single GraphQL query, even if that data lived in separate places? Up until now, this goal has been difficult to achieve without committing to a monolithic architecture or writing fragile schema stitching code. Ideally, we want to expose one graph for all of our […] James Baxley III · Announcement, Backend |
Blog post | Announcing managed federationJust a few weeks ago, we released Apollo Federation — our new open-source technology for composing multiple GraphQL services into a unified data graph. As James Baxley III explained in his blog post, federation is the essential architecture that lets organizations scale their GraphQL API from a single team to a shared asset serving the whole company. It enables multiple […] Matt DeBergalis · Announcement, Platform |
Course | From the community Getting Started with Apollo FederationApollo Federation allows you to orchestrate different GraphQL services into a single GraphQL gateway. In this playlist, we’ll introduce you to the core concepts of Apollo Federation to get you started by improving an example app for Snowtooth Mountain. Alex Banks · Backend |
Talk | Your First Federated Schema with Apollo ServerIn this talk, Mandi Wise will demonstrate how to get up and running with Apollo Federation in minutes and offer some considerations to keep in mind when transitioning to a distributed GraphQL architecture using this tool. This talk is 20 mins with 10 minutes of Q&A. Mandi Wise |
Stream | Setting Up Federation in Apollo StudioMichael Watson walks Kurt Kemple through setting up federation inside of Apollo Studio. Apollo Studio helps you develop, deliver, and observe your data graph. Michael Watson & Kurt Kemple · Backend, How-to, Platform |
Blog post | Announcing the GraphQL at Enterprise Scale Guide [Free Ebook]GraphQL helps us build apps faster. Data is more discoverable, easier to query, change, and evolve over time. Most companies that adopt GraphQL typically take one of these four patterns: Client-only: Client teams that are excited to take advantage of GraphQL’s client-centric data-fetching capabilities may add a GraphQL API within their own application for the […] Michael Watson · Announcement, How-to |
Docs | Apollo Federation DocsThe official docs for Apollo Federation. Learn how to implement a single data graph across multiple services. |
Blog post | Setting Up Authentication and Authorization with Apollo FederationWhen building out a distributed GraphQL architecture with Apollo Federation, we will often need to limit query access based on who requested the data (authentication) and whether they’re allowed to see or change the data they requested (authorization). Mandi Wise · Backend, Community, How-to |
Blog post | Using Apollo Federation with Local SchemasRecently, I needed to create a proxy to a third party API in our GraphQL Federation schema but didn’t want to spin up a new service just for this. This blog post explains how to use local schemas inside the Apollo Federation Gateway. A bit of context At work, we use the Prismic CMS to power the […] Patrick Arminio · Backend |
Panel | From the community Federation Panel – GraphQL Summit 2020Moderator: Jeff Hampton, Solutions Architect at Apollo Uri Goldshtein, Founder/Member at The Guild Stephen Spalding, Engineer at Netflix William Guedes, Engineering Manager at StockX Tejas Shikhare, Senior Software Engineer at Netflix Backend |
Stream | From the community Apollo Federation With Jesse Rosenberger, Engineering Manager @ ApolloIn this episode, Tony and Marc chat with Jesse Rosenberger, the engineering manager of the server team at Apollo GraphQL. We chat about GraphQL federation: A specification and declarative way to unify multiple GraphQL sources as one gateway. GraphQL FM · Backend |
Stream | GraphQL and Federation at StockXKyle Schrade joins Kurt Kemple to talk about how StockX is using GraphQL to power the world’s first stock market for things – a live ‘bid/ask’ marketplace. Kurt Kemple & Kyle Schrade · Backend |
Stream | Project Constellation; The Future of FederationAshi discusses the future of Federation, both from a technology standpoint, as well how it will differ from federation today. Ashi Krishnan · Announcement, Backend |
Related collections
GraphQL Tooling and Code-gen
One of the many benefits of adopting GraphQL is the ever growing eco-system of tools and services available to help you build your apps even faster. From code-gen to configuring Apollo Server, this collection has a range of tools, tips, and configuration best practices designed to boost your productivity.
- Backend
- Frontend
- How-to
- Platform
Production Ready Graphs
Putting your data graph into production doesn’t have to be a guessing game or scary experience. This collection is composed of written and video resources focused on stability, monitoring, schema management, schema design, and best practices.
- Backend
- How-to
- Platform
Auth
When building a GraphQL endpoint, you’ll probably have to face the question of how to control who can see and interact with the data in your API. This typically involves authentication (determining who you are) and authorization (determining if you have access). In this collection, we’ll cover strategies and best practices for both.
- Backend
- Frontend
Error Handling with Apollo
At Apollo, we’ve heard a lot of desire from GraphQL developers for more guidance on how to do error handling. Learn how to communicate errors to your client in an organized way, and open up new possibilities for tooling.
- Backend
- Frontend