FlowFuse / FlowFuse/flowfuse

Automatic failover for Node-RED Instances

Open
#1,920 3 comments 0 reactions 0 assignees View on GitHub
size:XXL type:feature
Dominant language
JavaScript
Stars
400
Forks
89
Avg merge
1d 21h
Merged PRs (30d)
146

Description

## Description
Implement a robust automatic failover mechanism for Node-RED instances that focuses solely on high availability without considering scalability. This feature will monitor the active Node-RED instance and seamlessly switch to a hot-spare instance if the primary instance fails or becomes unresponsive, thus ensuring reliability without the added complexity of load balancing and scaling.
## Related Epic
https://github.com/flowforge/flowforge/issues/1678
## Assumption
Automatic failover without scaling is assumed to be easier to implement than a complete high availability solution with scaling, as it omits the complexities associated with load balancing, state management, and other challenges tied to scaling.
## Motivation
As a customer of FlowForge,
I would like to have the option to utilize high availability instances.
This allows me to run business-critical processes within Node-RED and ensure that they are always available.
## Key considerations
- [ ] Heartbeat mechanism: Introduce a heartbeat system between the primary and hot-spare instances to ensure both instances can respond to requests. This could involve periodic 'ping' messages or other methods to track each instance's status.
- [ ] Failover decision-making: The hot-spare instance should autonomously determine whether to become the active instance, based on the monitored status of the primary instance. This decision-making process must be efficient, reliable, and safe to prevent having two active instances simultaneously.
- [ ] Safe failover: Design the failover process to avoid potential conflicts or issues that could arise when transitioning from the primary to the hot-spare instance. This may involve synchronization, locking, or other techniques to ensure a smooth handover.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.