Distributed data flow


Distributed data flow refers to a set of events in a distributed application or protocol.
Distributed data flows serve a purpose analogous to variables or method parameters in programming languages such as Java, in that they can represent state that is stored or communicated by a layer of software. Unlike variables or parameters, which represent a unit of state that resides in a single location, distributed flows are dynamic and distributed: they simultaneously appear in multiple locations within the network at the same time. As such, distributed flows are a more natural way of modeling the semantics and inner workings of certain classes of distributed systems. In particular, the distributed data flow abstraction has been used as a convenient way of expressing the high-level logical relationships between parts of distributed protocols.

Informal properties

A distributed data flow satisfies the following informal properties.
Formally, we represent each event in a distributed flow as a quadruple of the form, where x is the location at which the event occurs, t is the time at which this happens, k is a version, or a sequence number identifying the particular event, and v is a value that represents the event payload. Each distributed flow is a set of such quadruples that satisfies the following three formal properties.
In addition to the above, flows can have a number of additional properties.