Top 5 reasons to use Node-RED right now
Learn how Node-RED can help your latest IoT application by leveraging flow-based programming and MQTT.
You’ve probably heard of Node-RED. You know, that super awesome, browser-based, draw-the-flows and connect-the-nodes tool for integrating IoT devices with applications? Yeah, that one.
Maybe you’ve considered using it, maybe not. In this post, I’ll show you the top five reasons you should be using Node-RED in your applications. Right now.
#1 – Built on a battle-tested technology stack
Is Web Browser technically part of a technology stack? I dunno, maybe I’m taking creative liberties here. But I do so to make this point: writing GUIs is tough (especially good ones like the ones you and I write).
Oh, and web browsers are ubiquitous. You like Safari? Great! Firefox? Awesome! Chromium? Opera? All are welcome (sigh, even you, Chrome).
#2 – JSON – way better than XML
What’s wrong with XML
I’m no fan of XML. XML is incredibly flexible, powerful, and expressive, but I don’t like XML because it can be so easily twisted and contorted into a huge steaming pile of hard-to-read application metadata.
When an application developer has fallen prey to the “let’s describe ALL our metadata in XML!” there is no talking them out of it. They are spellbound. Determined to turn the application configuration into a tangled mess (usually right before they leave the team, or worse, the company).
#3 – Visualize the (network) edge
Flow-based programming is cool
What the heck is “flow-based programming?” Only a super cool way to visualize an application’s functionality. Created in the 1970s by J. Paul Morrison for a Canadian bank, Flow-Based Programming (FBP) is a different way of thinking about programming that breaks the problem up into data, processes that operate on that data, and the network that connects processes together.
Processes are grouped together in a flow in order to accomplish an objective. Similarly, flows can be logically grouped together to accomplish higher-order objectives, and so on. Data in, data out.
And (no surprise) FBP lends itself well to visual programming. So you can draw code. Yes. Draw. Code. That runs. How cool is that?
Life on the Edge
Ah, the edge of the network. Yep, that’s where a lot of innovation happens. Why? Because that’s where a lot of the data is being created. Huge gobs of it. All the time. Data from sensors, cameras, and GPS data from mobile devices like phones and wearables. And don’t even get me started on all the data from self-driving cars (it’s coming, believe it).
Need to innovate using all that data? Well, my friend, that’s the “edge” and that’s where Node-RED shines.
How? Since Node-RED was designed and built by the IBM Emerging Technology Services team as a way to visualize sending and receiving Message Queue Telemetry Transport (MQTT) messages to and from hardware devices, connecting hardware (and their data streams) to applications is baked into Node-RED’s DNA. If you need to build a prototype to show off your idea, why not use one that was designed for the edge?
#4 It’s not a toy
So you’ve built a prototype in Node-RED and your customer is impressed. Now what?
Now you build on that prototype to create the finished product of course. But stay in Node-RED! Whether what you need to build is a single new function, a collection of new functionality, or an entire application from browser to database, Node-RED has you covered from prototype to production.
And if you can’t find a component to fit your needs from the thousands that are freely available, you can write your own!
Check out IBM’s Node-RED Starter, for example, that will put you on the path to building some serious functionality.
#5 – Not just for IoT
Node-RED allows you to create functionality by wiring together flows of data between nodes using a browser. And it has gained tremendous popularity in the IoT space, by modeling bits of application functionality between IoT devices like sensors, cameras, and wireless routers.
The point is, a node is a block of code that can do pretty much whatever you want. Need to read in some data from Twitter? Check. Need to bump that tweet against a sentiment matcher to see if the tweet is happy/sad/indifferent? Check. Need to read in data from a web form? Check. Execute a serverless function running in OpenWhisk? Check.
You get my point. It’s SUPER flexible. And powerful.