apollographql / apollographql/federation

feat(gateway): Design proper abstraction for transport layer

Open
#563 1 comment 0 reactions 0 assignees View on GitHub
:hugs: improvement ⛲️ feature motivation/ergonomics
Dominant language
TypeScript
Stars
725
Forks
276
Avg merge
1h 47m
Merged PRs (30d)
1

Description

The gateway is currently quite prescriptive about its transport layer including its construction and usage of `GraphQLDataSource`s. This issue is meant to capture requirements for an abstraction which should be reasonably flexible and can satisfy reasonable asks.

A few things to consider: non-HTTP, proxying, sdl "introspection" query vs. regular query (special case queries), custom headers, ???

Related:
#342
#362
#406

Aside from the discussion on the mentioned issues, I'd welcome any additional feedback on this issue.

Contributor guide

Open the contributing guide

Research direction

No implementation files or tests are named. Start by reviewing related issues #342, #362, and #406, then inspect how the gateway constructs and uses GraphQLDataSources; done means agreeing on a flexible transport abstraction that addresses non-HTTP transports, proxying, special queries, and custom headers.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, typescript
Domain
api, backend-api-design
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.