Home > Posts Dependency graph

Max Heinritz

Dependency graph

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

  | A |
  | B |

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


I like to have the arrows pointing down to reflect this visually.




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 graph (e.g. with events), we can say that:

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