Federated GraphQL gateway update services and schema

1/6/2021

Take a scenario with a federated graphQL with multiple services where there are some services that depends on the others, like this:

enter image description here

The gateway was defined using Apollo:

const gateway = new ApolloGateway({
  serviceList: services
});

Where services is an array of available running services.

There is a kubernetes managing the availability of each service, so every time a service goes up or goes down kubernetes warns the gateway so it update this array and with gateway.load() it updates the server with the correct available services.

The problem is when a service goes down and some other service depends on it, like on the previous picture if Role goes down, Person is also affected.

I would like to know if it's possible to configure the gateway to change the schema of a service in order to take the dependency out. In this case when Role goes down, change Person schema so the client is not able to use this field anymore (since it is down).

If it is not possible, is there a work around solution?

-- André Bittencourt
apollo
federated
graphql
kubernetes

0 Answers