Over the past few weeks, I have been tinkering with Node-RED, in my workplace at the University. It is a great framework for quickly wiring up (literally) components in a flow based model and getting applications up and running. It brings the power of Node.js to a Flow Based Programming (FBP) paradigm. With FBP, you get black boxes, which you connect together to form your application.

My work has involved creating custom nodes for JSON sanitization and writing to an OpenLDAP instance. So far, it has been a great experience working with the framework.

The Good:
1.) The Node-RED workflow is great. It is quite easy to create a workflow, create subflows and wire components around. It is quite straightforward to understand, and it took me all of 10 minutes to get up and running and start playing around the framework.

2.) Developing a custom node is quite easy, and is well documented. It just takes basic HTML, JavaScript and some node.js knowledge to have a working node ready. There are some quirks, but overall it was a pleasant experience.

3.) Being based on Node.js gives access to the vast NPM repository. So, a lot of components are readily available for use. I found a module which provides a ready API to read/write to LDAP. I just wrapped it around the required HTML interface and it worked just fine.

4.) It is pretty easy to embed a Node-RED flow in an existing application, and the usage at university makes good use of this.

The Bad:

1.) Node-RED is poorly documented in many ways. To find common stuff such as unit testing is a pain. The documentation does not cover everything in vast detail (though it is enough to get you up and running). However this is made up by quite an active mailing list. Most of my queries were solved there.

2.) Debugging a custom node is not very easy. There are tools like node-inspector, but this has proved a little unreliable for me, often hanging up my system.

Sticking with FBP, I will be looking into NoFlo, which is responsible for the resurgence of FBP (and because of which many people know about FBP). More to follow 🙂