apollographql / apollographql/federation

Gateway on Lambda - Build Time Static Federated Schema

Open
#388 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
TypeScript
Stars
725
Forks
276
Avg merge
1h 47m
Merged PRs (30d)
1

Description

Apologies if someone has already raised this and I missed it in the issues.

The docs state that it's not recommended to use AWS Lambda because of init times to prepare schema (https://www.apollographql.com/docs/apollo-server/federation/gateway/) but I really want to 😄 .

I see that a managed gateway service might be a step toward alleviating this, but I wondered if it has been considered to simply generate the federated schema at build time instead of runtime to eliminate the need to do this?

In a blue/green deployment environment, the inconsistency during deployment would be acceptable. Or if the deployment is controlled so that the services are deployed before the gateway, then so long as breaking changes aren't introduced service functionality would be available before the gateway schema is deployed and therefore extended.

Maybe I'm missing something, but could this be potentially implemented as an option?

I might be able to contribute to a PR if the feature was deemed feasible.

Contributor guide

Open the contributing guide

Research direction

Start with the AWS Lambda and gateway documentation linked in the issue, then locate the gateway entry points responsible for preparing the federated schema. Determine whether build-time schema generation is feasible and what deployment assumptions it requires. Done means a decided implementation scope or documented conclusion, with tests and documentation identified for the chosen path.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, graphql, typescript
Domain
api, backend, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.