Dataflow  is a term used in computing , and may have various shades of meaning.

Software architecture

Dataflow is a software paradigm based on the idea of ​​disconnecting computational actors into stages (pipelines) that can execute concurrently. Dataflow can also be called stream processing or reactive programming .  [1]

There have been multiple data-flow / stream processing languages ​​of various forms (see Stream processing ). Data flow architecture (see Dataflow architecture ) is an alternative to the classic Von Neumann architecture . The most obvious example of data-flow programming is the subset known as reactive programming with spreadsheets. As a user enters new values, they are actually transmitted to the next logical “actor” or formula for calculation.

Distributed data flows have been proposed as a programming abstraction that captures the dynamics of distributed multi-protocols. The data-centric perspective characteristic of data flow programming promotes high-level functional style of specifications and simplifies formal reasoning about system components.

Hardware architecture

Main article: Dataflow architecture

Hardware architectures for dataflow was a major topic in Computer architecture research in the 1970s and early 1980s. Jack Dennis of MIT pioneered the field of static dataflow architectures. Designs that are used as static dataflow machines. These machines did not allow multiple instances of the same routines to be executed simultaneously because of the simple tags could not differentiate between them. Designs that use Content-addressable memory are called dynamic dataflow machines by Arvind. They use tags in memory to facilitate parallelism. Data flows around the computer through the components of the computer. It gets entered from the input devices and can leave through output devices (printer etc.).


A dataflow network is a network of concurrently executing processes or automata that can communicate by sending data over  channels  (see message passing .)

In Kahn process networks , named after Gilles Kahn , the processes are  determinate  . This implies that each determinate process computes a continuous function of input streams to the output streams, and that a network of determinants processes is itself determinate, thus computing a continuous function. This implies that the behavior of such networks can be described by a set of recursive equations, which can be solved using fixed point theory . The movement and transformation of the data is represented by a series of shapes and lines.

See also

  • Complex event processing
  • Data flow diagram
  • Data-flow analysis , a type of program analysis
  • Data stream
  • Dataflow architecture (a computer hardware architecture)
  • Dataflow programming (a programming language paradigm)
  • Flow-based programming (FBP)
  • Functional reactive programming
  • Lazy evaluation
  • Lucid programming language
  • Oz programming language
  • Packet flow
  • Pipeline (computing)
  • Pure Data
  • Stream processing
  • TensorFlow
  • Theano
  • vvvv

External links

  • DataFlow Analytics : Composable Analytics – Flexible Business Intelligence.
  • BMDFM : Binary Modular Dataflow Machine, BMDFM .
  • Cantata : Visual Language Dataflow for image processing .
  • Cells : Dataflow extension to Common Lisp Object System , CLOS.
  • DC : Library that allows the embedding of one-way dataflow constraints in a C / C ++ program.
  • Stella : Visual Dataflow for dynamic dataflow modeling and simulation .
  • KPASSA : a tool for static-scheduling, performance analysis and optimization for DataFlow models.
  • Liquid Rebol
  • SDF3 : Performance analysis tool for DataFlow Model
  • Ruby Dataflow : Ruby gem adding variable dataflow support
  • Acar  et al.  , Adaptive Functional Programming , POPL 2002
  • Scala Dataflow : The Akka toolkit provides dataflow concurrency in Scala
  • TensorFlow : Google’s open source ( Apache 2.0 ) second-generation Python and C ++ machine learning library using dataflow graphs
  • Apache Flink : An open source stream processing framework based on the dataflow programming model  [2]


  1. Jump up^  A Short Intro to Stream Processing
  2. Jump up^  Carbone, P., Katsifodimos, A. Ewen, S., Markl, V., Haridi, S. et al. (2015) Apache flink: Stream and batch processing in a single engine. Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, 36 (4)

Leave a Reply

Your email address will not be published. Required fields are marked *

Copyright 2019
Shale theme by Siteturner