Low-code, visual-based programming environments are opening doors for new types of application developers. At the same time, new event-driven architectures are making such environments more responsive.
Node-RED, a visual flow-based programming tool, is one such environment attuned to these new development styles. After years of refinement, the open source Node-RED recently hit maturity with a 1.0 release.
I chatted with Nicholas O’Leary of IBM, who has pioneered the development of Node-RED. In this article, we’ll discover what this new release encompasses. We’ll also peek into the history of Node-RED, look into some fascinating IoT use cases and estimate the future Node-RED roadmap.
Node-RED has been around since 2013. Originated within IBM’s Emerging Technologies Group, it was developed as a side project to streamline their proof of concept work on IoT and integration projects.
As O’Leary described, the nature of the Emerging Technologies Services work involves quick prototyping and fast turnarounds. However, many of their projects involved much boilerplate code for integrating different devices and sensors.
Rewriting libraries for things such as authentication or hardware-hardware integrations every time had become a burden. As Nicholas describes, “that was time not spent on the actual value of the problem we were trying to solve.”
Node-RED is Born
Thus, in 2013 Node-RED was born. The platform hides the boilerplate code and calls upon nodes to automatically initiate functions, enabling great reusability.
Programmers configure Node-RED through a low-code browser-based UI. Node-RED adopts flow-based programming. Given a task to solve, one can arrange a sequence of steps by dragging on a node to enable functionality to occur. Each node represents a well-defined function, such as talking to a serial port or communicating with a database.
Open Source Roots
Node-RED has garnered significant strength in the open source community. At the time of writing, developers have contributed more than 2,300 Nodes, accounting for all sorts of hardware types, web API integrations and additional unique scenarios. Open-sourced, they enable others to initiate a wide variety of code within their own hardware ecosystems.
To O’Leary, the open source route was an obvious path. “The real value was getting people to create and share these new nodes throughout the community,” he said. “Open source has been a huge enabler for what we’ve achieved with Node-RED.”
Node-RED is now part of the OpenJS Foundation. As he described, the actual decision making and governance of a project are key to its success as an open project. Being a project of the OpenJS Foundation helps to make Node-RED’s evolution more vendor-agnostic.
Driving Events With a 1.0 Release
Developers can view the specific features of the 1.0 release here. According to O’Leary, they wanted the full release to reflect the maturity of the project.
Node-RED is also coming into focus within an event-driven paradigm. “We live in an event-driven world,” he said. “When you look at the rise of serverless and Lamba functions, there is clearly a move to event-driven.”
He noted that adopting a visual nature is quite a shift for most programming mindsets. However, low-code opens a platform for use by industrial engineers and systems engineers who may not be natural programmers.
The use of NodeJS also brings flexibility benefits. Node-RED can be run within cloud services, as microservices or on a Raspberry Pi. This enables easily defined API requests to microservices, transactional events and more scalable powers for industrial automation.
Some Cool IoT Use Cases
Now at over 2 million downloads, many groups are using Node-RED both for prototyping and commercial offerings, O’Leary noted. Hitachi, for example, is the second-largest contributor to the project.
It’s especially been useful for hard-wiring IoT devices. For example, a group in the healthcare space utilizes Node-RED to monitor equipment in a hospital. This enables the coordination and tracking of devices.
Moment Factory uses Node-RED in multimedia art installations. Within the company’s Lumina night forest walks, explorers carry a rod imbued with special powers; visitors can wave it near trees and objects to trigger audio or visual cues. Node-RED is responsible for syncing the hardware and events necessary to simulate the magic.
O’Leary also described how a new mobile banking application utilized Node-RED to mock a server-side arrangement while the back-end API was still under production. Back-end mocking in this way can enable quick prototype development.
Final Thoughts and Road Map
Node-RED has become a popular tool for wiring together hardware devices. While the 1.0 release was about maturity and innovation, O’Leary noted future strides for the project:
- Serverless: Having a more complementary narrative with serverless in the future.
- Cloud-native: Incorporating larger architectural ideas around building cloud-native applications.
- End-to-end: Developing additional nodes to reflect a larger flow that even reaches into business logic.
- Community-driven: Adding further features sourced from the community.
Node-RED appears to be quite flexible, but O’Leary recognizes it won’t work for every scenario. As he said, Node-RED is “a tool in the bag you can pull out to build something quickly, easily extensible, but also low-code to make something nicely maintainable.”