Apollo Federation in Go part2

Introducing Managed federation

Manato Kuroda


In the previous post, I introduced how to implement Apollo Federation in the Go application.

In this post, I will walk you through the Managed federation feature in Apollo Federation.

Example Repository

Here’s the final codebase on GitHub. main branch is a version of part-1. part-2 branch is used in this post.


Managed Federation

Apollo Federation is an essential architecture that allows your organization to scale GraphQL API with multiple implementing services in one graph.

It has its own gateway server which handles the request from the client-side and executes incoming operations across the services, like distributes shared data to each service.

This gateway fetches each schema from the implementing services and composes them into a single federated graph on startup.

So, when you update your schema, you have to update the configuration and re-run a server in the gateway.

With managed federation, you don’t have to modify or redeploy your gateway. Instead, you need to push the schema to the Apollo schema registry, which checks to see if the schema is valid, if so, compose them into a single schema.

After composition success, Apollo uploads the configuration in GCS so that your gateway can poll for config changes regularly.

So, Managed federation enables you to:

  • safely validate your schema
  • deploy automatically
  • observe the changes in each graph

Set up a managed federation

Let’s try out the managed federation feature in our app.