flow of data from one entity to another
is used to show the path that the data takes through the system
how the data moves and is transformed during the computation, how does the data move between threads of execution