Dataflow architecture is a series of functions in computer software where each step is automatically generated by the actions of a previous function. It is also known as reactive programming. As each function is explicitly programmed, there is no need to recalculate values in one variable when another variable changes. This enables the function of parallel dataflow operations as resources are not focused on adjusting to the needs of each new command.
The concept of dataflow architecture has been compared to a factory assembly line. As with that kind of system, each packet of information is optimized for top performance individually while also being integrated into the whole system. The information is arranged in a sort of pipeline, where it advances from one function to the other. One significant way in which the system differs is that each packet contains the information needed to connect it to the next link in the dataflow chain.
As dataflow architecture is considered to be a fairly simple form of programming, it is often used by less experienced programmers. With this method, a system can be programmed one packet at a time. Some programmers are also attracted to dataflow architecture because it is a straightforward way to organize complex groups of information.
While dataflow architecture is relatively easy to use, it also has some limitations. With packets dedicated to specific tasks, a system can function efficiently, but with only a certain amount of flexibility. Each packet can be programmed differently, but if the system is to work, it must follow a certain path. As dataflow architecture solves a lot of problems inherent in dataflow and organization, many programmers will try to use its basic concepts while making adjustments to handle more sophisticated programming needs.
The concept of dataflow architecture is opposite to the traditional style known as von Neumann architecture. In this type of programming, there is a section for each function, rather than a series of packets with information that allows several kinds of functions. A primary difference with this form of programming as that it is not able to handle parallel processes. The system is named after the computer scientist John von Neumann, who wrote about the basics of the concept in a 1945 paper. Despite its limitations, this is also a fairly simple and widespread style of programming.