In the 1970s, J. Paul Morrison invented flow-based programming, which is a method of describing an application's behavior in a network of "black boxes" or "nodes" as they are called in Node-RED. Each node has a well-defined purpose; it receives some data, it does something with that data, and then that data is forwarded. The network is responsible for the flow of data between the nodes.
The above model is very suitable for a visual representation of Node-RED and makes the process clearer to users. If you can break down a problem into clear steps, you can look at a stream and get a sense of what it is doing; without having to understand the individual code lines within each node.
Runtime / Editor
Node-RED consists of a Node.js-based runtime that you enable in a web browser to access the flow editor itself. In the browser, you create your application by dragging nodes from your palette to a workspace and start connecting them. With a single click, the application is distributed back to the runtime where it is run.
The nodes palette can be easily expanded by installing new nodes created for specific applications, and the streams you create can be easily shared as JSON files.
Development of the Node-RED software began in early 2013 as a side project by Nick O'Leary and Dave Conway-Jones of IBM's Emerging Technology Services group.
What began as a proof-of-concept for visualizing and manipulating mappings between MQTT topics quickly became a much more general tool that could easily be expanded in many different directions.
It opened in September 2013 and has been developing in the open environment ever since, culminating in being one of the founding projects of the JS Foundation in October 2016. Now Wiesemann & Theis has also taken over Node-RED and will be offering developers this software in the product rule.box, which launches early 2020.