Hello, I've been using node-red casually for a couple years. I'm primarily a technical artist and don't go super deep on the tech side but make my way around. I mostly just send udp between Arduino, RPi and Unity and use node-red to tie things together. I'm giving a presentation at work this Friday to go over some of what I do, but I'd like to know some things from more informed people to make sure I have answers should they come up.
What are some of the most important or novel things about node-red that make it worth using? Beyond my use of 'it's really easy to connect stuff', I'm asking what are some other benefits?
Are there any security concerns? Anything special to keep systems safe communicating between nodes in a network, or when interacting with outside input. I've not done any work in looking into making sure what is secure and what is not. I'm not an IT guy but I really ought to understand a bit more in that regard.
What are some of your favorite projects that have been created that might be a good example to point to?
My old workplace used to send tons of data for tracking joints on groups of people. To my knowledge, big json files many times per second. It worked well, at least by the time it got to my endpoint in Unity. But I've read some opinions that huge amounts of data shouldn't be sent through node-red. I have no knowledge of what 'huge' is, or what the size of those json files were, but are there any general benchmarks for how much data can go through node-red? I assume it is also affected by network infrastructure?
Thank you for any info you may be able to give. Primarily I'll be just going over basics, but would love to be a bit more informed.
It is an open source flow-based, low-code development platform. A visual programming paradigm if you will. It does a lot of heavy lifting for you when creating a set of logic, ETL or integration between multiple systems.
Some organisations have undertaken security reviews but as far as I am aware, none have published them publicly. So assessing the overall security of Node-RED is somewhat complex.
Node-RED started off as a single-user system and so its multi-user security is relatively basic though it exposes middleware to allow the use of ExpressJS security extensions.
Dashboard is still really only single-user though some people have overlaid additional security.
However, being essentially a web-based microservice, Node-RED works well behind a reverse proxy and that can be used to undertake many security tasks. In fact, that is what I generally recommend to people so that they can implement sensible separation of concerns.
There are a bunch of examples in the forum. I only use Node-RED for IoT home automation. I use it to drive the integration of multiple sensors across different wireless connection types and for the "smart" control of lighting and heating along with alerting.
My main contribution is uibuilder which gives the ability to easily create data-driven web user interfaces. With Node-RED doing the back-end heavy lifting.
Well, you do need to understand the limitations of the platform. It copes surprisingly well with large numbers of small datasets being passed around. But it is, at heart, a single-threaded Node.js application which does limit its vertical scalability (being put onto big devices to get performance). There are often workarounds though - I can think of several possibilities for the scenario you gave. The most likely being sending the joint outputs direct to MQTT as individual readings. MQTT should have no problems keeping up. Then, in Node-RED, you could subscribe to just the things you want and filter down the number of inputs should you need to.
Take a browse thru the 'Share your Projects' category here on the forum. You may find something that will be helpful. There are currently 345 threads/projects there...