We currently have an XMPP server and am now starting to look at clustering. We will have 2 machines, each with an XMPP server. The interface is the standard XMPP connection (not BOSH). We have XMPP components that are running on each XMPP server. We are using Tigase for the XMPP server.

Tigase supports clustering, but we were interested in seeing if it was possible to use HAProxy to do the clustering instead. Each request needs to go back to the original server so it would need some type of affinity. We have looked through the documentation for HAProxy and it's possible to do load balancing based on the source ip, but what are the options if the source ip changes?