Design Decision: Medium-term target for node HA¶
Background / Context¶
Designing for high availability is a complex task which can only be delivered over an operationally-significant timeline. It is therefore important to determine whether an intermediate state design (deliverable for around March 2018) is desirable as a precursor to longer term outcomes.
1. Hot-warm as interim state¶
- Simpler master/slave election logic
- Less edge cases with respect to messages being consumed by flows.
- Naive solution of just stopping/starting the node code is simple to implement.
- Still probably requires the Artemis MQ outside of the node in a cluster.
- May actually turn out more risky than hot-hot, because shutting down code is always prone to deadlocks and resource leakages.
- Some work would have to be thrown away when we create a full hot-hot solution.
2. Progress immediately to Hot-hot¶
- Horizontal scalability is what all our customers want.
- It simplifies many deployments as nodes in a cluster are all equivalent.
- More complicated especially regarding message routing.
- Riskier to do this big-bang style.
- Might not meet deadlines.
Recommendation and justification¶
Proceed with Option 1: Hot-warm as interim state.