Difference between upstream and downstream

snowlearner
Kilo Expert

Could anyone please explain me the difference between upstream and downstream in CMDB. Any example?

9 REPLIES 9

Parent is upstream, child is downstream.


Just to explain more on this.


upstream applications are those who provides (parent) data to your application and downstream application are to take (child) data from your application.



For example: If you want to poll an email from (say application: Microsoft Exchange) to your application (A) and then export that email to some repository (say application: Storage) for further reference, then in this case



upstream is Microsoft Exchange


downstream is Storage


Churchie
Tera Guru

I know this question gets asked quite a bit. Conceptually it can be hard to grasp, especially going from different CMDB tools to ServiceNow CMDB. The following may be a TLDR (Too Long Didn't Read) so I apologize in advance. But for those who enjoy the spirit of debate please read on and comment.

IMHO, I do not like the way ServiceNow structures upstream and downstream relationships in the CMDB, especially when you try to overlay that structure with the concept of a Parent/Child.

Logically, a "stream" would only affect those things downstream from it, the same way you would imagine a Parent to affect a Child. This is where ServiceNow gets it wrong in my opinion.
It is simply counter-intuitive to think of a Web Server as a Parent to a Windows Server. 

Let's take the image Michael was kind enough to post above. Imagine as an exercise that all the arrows pointed the other way. It would align to the way you would create or instantiate all those pieces to create that flow. Note: the below is not accurate but is my interpretation of how this should look.

find_real_file.png

Upstream should always be a Parent and Downstream should always be a Child. Parent first, Child Second. We see this pattern everywhere. You would not logically think a Web Site is the Parent of the Web Server. You literally have to have the Web Server running first (a Parent, right?) before the Web Site could be up (Child).

Can the Web Site exist without the Web Server? And the same for the Web Server, could it have been created without the Windows Server itself? 

If the Web Site was stopped, would the Server be down? Of course not, and that is where the picture confuses many of us. 

I'm curious what others think so please let me know your thoughts.

 

 

I totally agree with you! For me the way ServiceNow shows the dependency makes no sense for me.  

Thanks, Churchie

It's a very good explanation, my response is a bit late on this, but hoping it will help someone.

I come from a full-stack java development background and with a good understanding of design pattern and OOPS. When I was looking into the BSM map (especially arrow) pointing to upstream and downstream and when I was trying to map/understand the same with Object-Oriented Concept, it was getting super confused.

From my understanding, it should have been represented in the same way as you explained in your latest BSM map.