We use Node-RED (v1.3.4) for microservice-like services at my company.
Here are some thoughts on Node-RED:
No real helpful GUI to code at.
It’s no secret that Node-RED GUI is not an IDE. And, of course, it is not meant to be an IDE. That’s perfectly ok for small to medium-scale applications. But, if you are working on large-scale enterprise applications, well… you need an IDE.
No IDE means no ESLint, no Prettier, no code standardization whatsoever. This could potentially lead the code to cause exceptions that could be solved beforehand or cause various run-time or compile-time issues.
No code review.
Due to how Node-red flow contents are stored in a file, we can’t do a healthy code review. The closest thing to review the code is a developer that paired with another developer that actively reviews the code. But, that’s a lot more effort than doing just code review.
PS. I don’t mean working with pairs requires more effort. What I mean is having a need to work with pairs requires more effort.
No easy way of merging branches.
Due to how Node-RED stores flows in files, makes it really really hard to work on different features and merge them.
There is always a “Node-RED Guy”.
Node-RED is an unusual tool for large-scale enterprise applications. So, it’s only natural that not everybody to have experience with this tool. Usually what happens is, one guy who has more experience working with Node-RED takes all or almost all of the tasks related to Node-RED. This is not necessarily a bad thing but, yeah...
No architectural benefits.
Due to Node-RED’s nature, you can’t implement any architectural design that makes the coding process more predictable and organized. Developing on Node-RED is almost always a mess.
You can’t just attach the node process to VSCode or whatever IDE you use to debug unless you run the Node-RED instance on your computer, which makes no sense if you are working with numerous people. This forces you to send exceptions to chat groups during the development that annoy the hell out of people.
Flow-based Programming is a waste of time for large-scale applications.
This is a personal opinion. I think flow-based programming is a waste of time for medium to large-scale applications. And I think there is no real benefit to it to be used.
Node-RED is a great low-code tool and gets the job done like any tool. But I don’t think it’s a great choice for large-scale enterprise applications’ services.