For doing streaming in Node-RED, I created a library[1] - it's been through exacatly one example flow[2] - for that it worked well. I've not had a use case for it, it was just an idea of mine to implement an ETL pipeline using NodeRED.
The library just uses the streaming API[3] of NodeJS - effectively converting lines of CSV (for example) into individual messages that flow through NodeRED.
NodeRED isn't great for handling large messages but perfect for directing many small messages.
Have not used Node Red in production and only played with it briefly, but n8n is more of a Zapier replacement whereas Node Red I believe is more of an IoT automation platform.
n8n is made so that you can set it up and give your staff access and they can manage their own workflows (like "when a customer opens a support ticket, update their Salesforce record to increment the number of tickets they have opened").
It's clearly aimed at non technical users being able to develop their own solutions to problems (for better or for worse), more so than Windmill which is made for developers to solve their own problems or develop solutions that non-technical people can use. Node Red if I remember correctly is more heavily weighted toward real time events for dev (especially hardware/IoT dev) use than "let the support team manage their own workflows for routing customer complaints"
I've used Node Red and n8n both on my homelab and deleted Node Red after awhile. The UI, workflow and 3rd party service support is simply just better on n8n. I could see Node Red having its advantages if you're used to writing code all day (I'm not).
For me, NodeRED is far more low-level with switch nodes being the equivalent to a case statement. A change node being equivalent to doing assigments of variables.
n8n is far more high level with google sheet nodes communicating with postgres database nodes. There is far less ability to do manipulate the data being passed around - as many said Zapier-like.
NodeRED is used for home automation and talking to devices that are connected to the network and providing nice dashboards of things happening. Another big use case is IIoT. So it less focussed on integration of SaaS services and more on devices integration and inter-communication between devices.
Plus NodeRED has a great collection[1] of third party nodes that can help in connecting to new devices. Installing nodes is based on npm but is completely automated.
I've just poked at them, but my impression was that Node Red much more capable.
IIRC one of my issues with n8n was the lack of streaming ability, which kills it for large datasets.