Reliability Requirements
Durable data
The following data is preserved if the entire cluster shuts down/crashes and is re-started:
- Wiring (i.e. declarations of queues, exchanges and bindings)
- Persistent messages on durable queues
Optionally (configuration) the following may be preserved:
- Non-persistent messages on durable queues.
Question: do dtx transactions need to survive cluster restart? do tx transactions?
Fail-over
A cluster member informs its clients of backup candidates for each session. It can update the list periodically.
After an unexpected disconnect the client can connect to one of the candidates and resume its session transparently. All session state is preserved including:
- Open references
- Open transactions
- Active consumers
- Commands-in-flight
Sessions do not survive
- multiple failures that include the current node and all back-up nodes for that session.
- shutdown/restart of the cluster.