Data flow between tasks.
Operations may require data from several tasks; organizing communication in an efficient way can be difficult.