Openfire Multiple server setup questions

I am trying to setup a Multi server cluster, but ran into some problems with the MySQL cluster.
The cluster has 3 servers spread out around the country, connected via wifi links over a few hundred miles. The Wifi links between some of the nodes can sometimes go down for a while, so a server would be unavailable for a while. Sometimes a day or two. But there would be users connected to all 3 servers at either side of the wifi link.

The problem is, if one server loses connection, there would still be conversations on all 3 servers.
When the Wifi link is restored, what would happen?

I first tried the MySQL Galery cluster, but as soon as one of the nodes lose connection, the other two go into split brain, and effectively all 3 servers are offline.

So I am thinking of rather setting up a master-master replication cluster, but not sure how this will work with 3 servers.

I could add 2 more servers, but the wifi links between the cities are sometimes unstable and we would still sit with a single node that cannot reach the rest of the cluster, at times.

How do I ensure that users connected to any node can at least communicate with each other on that node.

Something else which I cannot figure out, is where are offline messages stored (i.e Server Settings > Offline Messages)?

I can’t speak for MySQL clustering, but Openfire’s clustering is not designed to operate in scenarios where there is a continuous split brain scenario. I’m afraid that the scenario of having network issues that lasts for days is not something that is suitably addressed by an Openfire cluster.

Maybe you should consider running three different XMPP domains (one for each city), instead of trying to run one Openfire cluster. Server-to-server communication (also known as ‘federation’) is ingrained into the XMPP specification and Openfire. It would reduce complexity in your setup, and would be a lot more robust when working with different physical locations that have spotty network connectivity. Individual locations would no longer depend on each-other for their local operation.

These messages are stored in the Openfire database (specifically, the table ofOffline). Note that for regular message archiving, you’d typically want to use the Message Archive Management functionality that is provided by the Monitoring Service plugin.

Would I then have to configure all 3 servers in the chat clients? we use Gajim on the PC’s and Conversations on our android mobile phones.

does each site not have a standard internet connection?

In principle, no. Each server would have its own userbase, that would consist of the people that are local to that office. They can each add contacts from the same server, but also from the other servers to their contact list.

I would prefer if all users automatically work on all the servers. Is that possible?

And, how would I add users from the different servers, to the same groups?