envoyproxy/envoy

Support one-to-one mapping of upstream/downstream connections

Open

#12,370 opened on Jul 29, 2020

View on GitHub
 (17 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/httpdesign proposalhelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

I’d like to have the ability to have exactly one upstream connection for every downstream connection that we decide to route. That is, streams on the same downstream connection should share the same upstream connection, but no other streams should use that upstream connection.

The rationale for this is twofold:

  1. I want to ensure that only the traffic for a single downstream client is carried over a given upstream connection. I do not want mixing of client traffic over an upstream connection. This would be solved by creating a new connection for every stream if it weren't for the second rationale
  2. I want to avoid the overhead of the TCP handshake that would be needed in the connection-per-stream case.

I have time to work on this feature if there is a consensus that it makes sense.

Contributor guide