Infelizmente, existem diferenças de opinião sobre o significado de montante / jusante. Ao falar sobre arquitetura do sistema, eu o defino da seguinte forma:
Dado um sistema de preocupação, os sistemas que iniciam a troca de mensagens / dados para o sistema de preocupação são sistemas upstream e os sistemas dos quais o sistema de preocupação depende (ou seja, aqueles nos quais meu sistema inicia a troca de dados) são sistemas downstream.
Este link da ibm que descreve interações com um de seus produtos corrobora esta visão:
Integração com sistemas upstream e downstream https://www.ibm.com/support/knowledgecenter/en/SSWSR9_11.3.0/com.ibm.pim.dev.doc /integration/pim_con_dev_creatingjobsforintegrationcontainer.html
Um sistema upstream é qualquer sistema que envia dados para o sistema Collaboration Server. Um sistema downstream é um sistema que recebe dados do sistema Collaboration Server.
Dada a terminologia 'rio acima' e 'rio abaixo', pode ser útil fazer uma analogia com um rio. Se você soltar uma mensagem (dados) no rio, ela flui do rio acima (iniciador) para o rio abaixo (receptor).
Curiosamente, eu descobri que arquitetos e desenvolvedores de middleware usam essa definição e desenvolvedores da Web o contrário (talvez devido a 'upload').
Com as linhas de tempo do evento, um evento fica a montante quando ocorre antes de um ponto na linha do tempo (ou seja, dispara outro evento) e a jusante quando ocorre depois (ou seja, recebeu o evento). O que é upstream e o downstream em uma sequência de eventos, portanto, depende de onde você está na linha do tempo. Um evento pode ser a jusante e a montante, dependendo se o seu ponto de partida é anterior ou posterior a ele.
Como @jack observa RFC7230 tools.ietf.org/html/rfc7230#section-2.3 tem essa:
Os termos "upstream" e "downstream" são usados para descrever
requisitos direcionais em relação ao fluxo de mensagens: todas as
mensagens fluem de upstream para downstream
Eu ficaria interessado em ver nos votos, qual é o uso mais comum!