21

in my organization they tend to use a nomenclature of "downstream" and "upstream" when they talk about communications between systems. What is the definition of these concepts? Is this standard concepts in the world of IT-development?

su99-bsa
  • 427
  • 1
  • 5
  • 11
  • Can you use it in a sentence? – Zoltán Aug 23 '13 at 11:38
  • 6
    http://programmers.stackexchange.com/questions/71080/what-does-downstream-upstream-design-mean – Richard Morgan Aug 23 '13 at 11:39
  • Yes, they tend to use it in this fashion: "We need a test environment that is seperated from DTAP, both upstream and downstream". "No, we cant deploy because we have problems downstream/upstream". – su99-bsa Aug 27 '13 at 14:28

2 Answers2

29

I know this is old but I think the other answer has it the wrong way around. Think of it this way - if you are upstream from something what you do can affect it and equally something upstream from you affects you but something downstream can't.

So to use the same method, given a system S:

Upstream - something which S depends on (as it's actions "flow down" to S)

Downstream - something which depends on S (as S's actions "flow down" to it)

Matt
  • 12,569
  • 4
  • 44
  • 42
  • 2
    Yes, I agree with Matt. I see it as this: A --> B --> C A is the source for B, B is the source for C. So, the chain goes from A to B to C. From A to B and to B to C I consider downstream, like 'how the river flows'. GOing in the opposite direction is going upstream. Though I know in my company other people also use it the other way around... – cybork Dec 21 '17 at 08:35
-4

To simplify things, let's say we are talking about a system S.

Upstream - Something which depends on S

Downstream - Something which S depends on

dopplesoldner
  • 8,891
  • 12
  • 44
  • 55
  • So in a JavaEE application... the equivalent would be... if we are talking about EJB beans.... then the DB is downstream and JSF is upstream?? But upstream/downstream is a matter of systems and not components of a system, right? – su99-bsa Aug 26 '13 at 07:19
  • 2
    I believe the more common interpretation is the one that Matt posted in the other answer. I elaborated on it in [this blog post](https://reflectoring.io/upstream-downstream) because it kept confusing me, too. – Tom Mar 25 '19 at 15:50
  • 2
    This is wrong. Nothing downstream can be a dependency of yours. They are dependents... not dependencies. – SgtPooki Jul 19 '19 at 19:38
  • 3
    This answer is obviously wrong. When you are at a real stream or a river, if you throw something into it, it would flow downstream. Changes can affect only downstream dependents. Dependencies are upstream. – Piotr Kołaczkowski Aug 04 '19 at 07:08