Flow-based programming (FBP) is a programming paradigm that combines a series of processes (“black boxes”) together to create your application. It was created by J Paul Morrison while working for IBM in 1970s.
These black boxes are referred to as “nodes” and are built for a specific task. They receive an input from another node, process the input and send an output. This output is then passed on to the next node as the input. This communication is known as a flow. The data that passes between the nodes is known as Information Packets. These Information Packets pass along the flow and are manipulated by each node as it travels from beginning to end (“edges”). For application developers, nodes can be created to build reusable snippets of code that can be reused throughout the application. However, often it is possible that a developer can combine a series of existing nodes to create a sub-node to fulfil the task.
The main motivators are code reuse, testability, concurrency and maintainability.
J Paul Morrison