Home > Posts Dependency hierarchy

Max Heinritz

Dependency hierarchy

A dependency hierarchy is a way to describe interactions among software components. It helps us break down complexity into easier-to-reason-about chunks. The simplest dependency hierarchy looks like this, with A depending on B:

  | A |
  | B |

A -> B implies a relationship with the qualities below.





Independent evolution

User interactions


The concepts of “upstream” and “downstream” are defined in relation to the flow of information, which is distinct from dependencies. The terminology is a bit confusing here because upstream/downstream doesn’t always match the vertical placement of modules in the dependency diagram.

When information is flowing up the dependency hierarchy (e.g. with events), we can say that:

When information is flowing down the dependency hierarchy (e.g. with API call), we can say that: