I was thinking about purchasing a FlowForge subscription but I couldn’t understand if the HA mode meets my expectations. Only information I could find about HA was that it run multiple Node Red instances of the same Node Red. What happens when an instance fails/dies or how do they achieve Load Balancing?
For example if I have a chain with 11 nodes and my instance dies during the fifth one, Will it to continue from the fifth one(not from the start) when I run it again? Will they offer me that?
I plan to run Node Red as a service in one machine. Which I will communicate or deploy nodes in editor(preferrable) from multiple computers. Is that achievable? Does FlowForge offer a similar service?
When an instance fails, a new instance is brought online to replace it automatically. If there was data which only existed in the instance which failed, that data will be lost so you need to design your flows to manage that situation. This is exactly the same as in a standard (none-HA) Node-RED set up.
With regards to load balancing, FlowForge manages inbound connections to your HA Node-RED application, in practice the most available instance will be passed each connection by the load balancer.
It’s important to consider how you design your application so that you can benefit from our HA features while avoiding loss or duplication of data. That challenge is not unique to FlowForge, it’s something which needs to be considered in all stateless load balanced applications.
With an application designed to benefit from our HA offering, we’ve seen a doubling of throughput when enabling HA for a Node-RED instance. We have also observed automatic recovery of downed instances in Node-RED.
I will add to what Rob has already stated about being " important to consider how you design your application "
As touched on in the Node-RED forum, this is not really something any Node-RED node can do without a node somehow being HA aware.
The solution I briefly mentioned would be to utilise HA in FlowForge and a queueing system in your flows where by instead of 11 regular nodes, your flow calls 11 “subroutines” (I will call them that for now). The subroutines would be operated on the HA nodes - meaning there should always be a node available to process the message. When the message reaches the end of the 11th node, you would “pop” it out of the queue as it is complete. If it fails for any reason, it would still be in your queue and could be processed once more.
Hope that helps you move forward on this.
This is normal and something you can do today with FlowForge. Plus much more. You should checkout the “devices” capabilities FlowForge has to offer.