So far what I've come across is this -
- Setting up
ejabberd
cluster in amaster-slave
configuration, there would be a single point of failure and people have experienced issues when even after fixing the master (if it goes down), the cluster doesn't become operable again. Also sometimes,ejabberd
instances of every slave would have to be revisited again to get them working properly, ormnesia
commands would have to be in-putted again to make master communicate with the slaves. - Setting up
ejabberd
cluster in amulti-master
configuration then any of the nodes can be taken out of the cluster without bringing the whole cluster down. Basically, there is no single point of failure and, this is also the way in which the official documentation forejabberd
tells you to do via thejoin_cluster
argument they expose in theejabberdctl
script. HOWEVER, in this case, all the data is replicated across both nodes which is a big performance overhead in my opinion.
So it boils down to this.
What is the best/recommended/popular mode in which an ejabberd
cluster of 2 nodes should be set up mostly with respect to performance but keeping other critical factors (fault tolerance, load balancing) in mind as well.