What does “downstream/upstream design” mean

terminology

What does "downstream/upstream design" in software development mean?

Best Answer

Upstream components are other parts of the system that your component depends on to do its job. If the design of an upstream component changes, the ability of your component to function may be affected. If an upstream component has a bug, this bug may be manifested in your component.

Downstream components are parts of the system that your component can affect. Changes in your component can ripple to components that are downstream from your component.

Consider an application that consists of a database tier and an application tier. The database tier would be considereded to be upstream of the application tier.