Skip to content

Provide support for subgraph connections to only be made with h2c (http2 cleartext/prior knowledge) #3535

@theJC

Description

@theJC

Describe the solution you'd like
In subgraph_service.rs provide explicit support allowing configuration of router to result in all outbound subgraph connections to be made using http2 cleartext (h2c). Due to using h2c, there is no need to initialize the tls_config setup for these connections at all.

Additional context
Our environment's service to service communication uses envoy. Each service's outbound connections connect via h2c to its own envoy sidecar. That envoy sidecar provides load balancing and cross datacenter failover capabilities and establishes http2/tls connections to all destination service instances envoy sidecars which then communicate with the destination service's ingress h2c endpoint listener. Thus for router to exist and communicate using the approved/golden path used by services, we need to be able to tell router to only use h2c for its outbound connections to subgraphs.

https://docs.rs/hyper/latest/hyper/client/struct.Builder.html#method.http2_only
we have used tonic to make grpc calls over service mesh, and that requires h2c - and tonic is built on hyper

In Apollo Gateway which we are working to migration off of, we have been using h2c outbound and accomplished this via the fetcher interface on RemoteGraphQLDataSource and used @adobe/fetch.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions