Suggestion for "ad hoc" failover/HA with Openfire

Hi, I’m building an application that will be using Openfire, probably across multiple domains, for chat. My application will handle authentication, establish server-to-server channels etc, so I’m not too worried about users knowing which domains each other is logged into and so forth. However, I’d like some sort of failover so that if the server hosting a given XMPP domain crashes, we can switch the user over to a different one. I’ve seen this: which looks promising but it relies on two technologies (JBossCache and JGroups) that I’m not sure I want to introduce in my environment when I can do something simpler.

The other method I can think of is that I can make the whole thing kind of “ad hoc” and in case of an error, have the clients (which I will control) programmatically reconnect to a different server/domain and have the information about their activities, which will be in a database anyway, restored.

The key is that because I control the client as well as the other aspects of the application, it seems to me that I don’t really need “true” clustering at the XMPP layer. My question is, am I being crazy? Overlooking something fundamental? Is there more to be gained by “true” clustering than having multiple servers be able to answer XMPP requests in the same domain (even there, I don’t quite see why shared memory is required)? Would a connection manager help here?


the simplest solution I can think of would be to assign multiple server ip’s to the same DNS A record, and ensure that any user can register to any server. It won’t be a seamless solution, where-in if User A is registered to Server 1, and Server 1 goes down, user A would be kicked offline momentarily until he re-registers again.

Fair warning here, that in principle, this should work for any service, as I’ve used it for web servers in the past, but I haven’t tried it with OF.