Re: Working Group Last Call: Incremental HTTP Messages

> On Oct 16, 2025, at 17:23, Rory Hewitt <rory.hewitt@gmail.com> wrote:
> 
> ...and yet, to literally millions of people who are somewhat involved in the technical side of "the Internet", the words "downstream" and "upstream" are STILL commonly taken to mean "to the client" and "to the server". I think everyone on this list understands that.
> 
> Perhaps we shouldn't use those words at all, or Envoy should clarify them more, but they are a useful shorthand that people use every day - including those who work at big 'internet companies' like AWS, Google, Akamai (where I work), Cloudflare, Fastly and the list goes on.

I understand “upstream” and “downstream" in the context of a hierarchical topology, where you have an “uplink” to the Internet and a “downlink” to your system. While most systems are clients, this applies to servers equally well; download within data centers is so under-utilized that it’s typically free. In fact, AWS, Google, Akamai, Cloudflare, and Fastly all offer free download to their clients within their network.

Since this is confusing if your perspective is from outside that network, they all use hub topology terms, and call data flowing towards the server “ingress” or “inbound”, and data to the Internet “egress” or “outbound.”

So, I think the 9110 terminology is nicely suitable, and mirrors common usage.

Regards,

Austin.

> Rory
> 
> Rory Hewitt
> 
> http://www.linkedin.com/in/roryhewitt
> 
> On Thu, Oct 16, 2025, 12:47 PM Roy T. Fielding <fielding@gbiv.com <mailto:fielding@gbiv.com>> wrote:
>>> \On Oct 16, 2025, at 11:37 AM, Rory Hewitt <rory.hewitt@gmail.com <mailto:rory.hewitt@gmail.com>> wrote:
>>> 
>>> Roy,
>>> 
>>> I would always use "downstream" to mean "towards the client" as David (and the Envoy documentation) does. Are you saying that it can/does mean the opposite in some cases?
>>> 
>>> Rory
>> 
>> All HTTP communication occurs on directional data streams: requests are sent
>> (or received) on one stream and responses are sent (or received) on a different
>> stream. The data is the stream. Each data stream can be closed, independently.
>> 
>> A proxy like Envoy is going to receive requests on one stream and receive
>> responses on a completely different stream. In both cases, Envoy is downstream
>> to whatever sent those messages. All messages go downstream (because the
>> messages are the stream).
>> 
>> Now, we could reasonably make an analogy in 1995 that the Internet reflects
>> a geologic system of rivers where all messages are like fish that swim through
>> those rivers, and then maybe claim that every HTTP request is a salmon making its
>> way upstream to spawn and die so that the next generation can come back in
>> the form of fingerling responses. Sure, we could have defined that.
>> 
>> That's why we had to write down the definitions that the WG did agree upon.
>> Because someone made us do it.
>> 
>> But it's not 1995 any more. It's 30 years after the point where salmon would
>> be considered a viable analogy worth documenting the one Internet standard
>> that defines almost the entire space of this product (an HTTP proxy).
>> 
>> When a single product's documentation uses terms that directly conflict with
>> the Internet standard upon which the product is entirely dependent, there
>> is no confusion about which one is wrong. We don't need to clarify that.
>> 
>> ....Roy
>> 
>> 

Received on Friday, 17 October 2025 01:18:14 UTC