Why does HashiCorp seem to refer to upstream / downstream as the opposite of everything else I've read?

Everywhere I’ve read in the docs seem to use these terms to mean the opposite of what I’ve seen anywhere else.

For example, HashiCorp calls a database “upstream”. I always understood that to be downstream:

frontend -> API -> database

An upstream is a backend server. See for example nginx, which defines the backends as upstreams:

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

You are fetching information/ data, so it streams up the vertical workflow.

Whatever you read, HashiCorp is not the only company talking this way about upstreams. :wink:

Ah, so the stream isn’t the representation of the request, but of the response?

I think that’s the way it is. :slight_smile:

1 Like

I am assuming this is related to the connect integration?

I always like to use images such as these https://dpzbhybb2pdcj.cloudfront.net/posta2/v-5/Figures/envoy-internals-high-level.png to keep upstream and downstream confusion to a minimum.

1 Like

Thanks! The image does help, but I still say that naming is confusing since it’s the opposite of the definition of the word: https://www.merriam-webster.com/dictionary/upstream

Upstream normally means where the water is coming from.

The definition used for upstream and downstream is coming from Envoy, so that terminology shows itself inside the connect stanza too.

https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/intro/terminology