Maintain a list of all MUC participants in case of cluster failure
All cluster nodes should at all times have a collection of all occupants of all chat rooms
This information is needed when a local node leaves the cluster (but continues to operate). In that case, it needs to be able to inform its locally connected users (that ‘remain in the room’) that all occupants that are connected to other cluster nodes (now unavailable) have ‘left the room’).
The data that needs to be maintained for this purpose is fairly light, and does not require all state. It should be enough to track
Room JID and
cluster node ID (for domain-local users) (as ‘leave’ presences can be sent immediately for these, after a cluster disconnect)
real JID (for federated users) (unsure if ‘leave’ should be sent. Federation might still be feasible?)
it’s possible that it’s enough to maintaining a collection of all occupants of all chat rooms that the local node has ever communicated to any of the users connected to the local node).