Comment by rdtsc
> Erlang is not as performant for heavy computational loads
Well, sure don't use it for heavy computational loads if it doesn't work for you. It works great for our use case and I think Node-RED is also not for heavy computational workload, but rather for event programming, where lots of events happen concurrently.
> how would you do multithreaded processing of a large amount of data without a shared heap in a performant way?
That's a specific workload, it's not universal, for sure. I haven't worked on cases there is a single large data structure and all million clients have to manipulate it concurrently. Not saying it's implausible, I can see a game server with an arena maybe being like that, but there are other systems that work like that.
> I think Node-RED is also not for heavy computational workload
That is correct, Node-RED is designed for routing many thoughts of smallish data packets through some computational units. Each computational unit is basically a node with a message queue and each message is handled and then passed on.
This means that if a node takes too long, its queue will potentially overflow causing failure. However if there are fewer messages than nodes can take longer - there is nothing ingrained in Node-RED that prevents having long running processes and fewer messages.
As long as message queues don't overflow or messages get too large causing massive memory usage, then Node-RED will happily just work.
NodeREDs many use cases are controlling many small devices (home automation) and (I)IoT - collecting datapoints from 100s or 1000s of devices and routing that around to whereever the data is needed.