Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am a complete newbie to XMPP and ejabberd. I would be very thankful if some expert could tell me, how the ejabberd "clustering" works. I searched a lot, but could not find any specs about this.

Does it simply replicate all it's data via http (so it doesn't matter where a client connects)? Or will it be done via DNS RR?

share|improve this question

It uses the clustering capabilities of Erlang : - The ability to message any process on a any node in the erlang cluster - it also uses mnesia, erlang's distributed database for storing the routing table, which contains the JID <-> client process id mapping.

When a message enters ejabberd, it looks up the recipient JID in this table, and sends it to the PID it finds. This process can be anywhere in the cluster, erlang takes care of routing it.

share|improve this answer
up vote 0 down vote accepted

It seems that clustering is done on an DNS Level (or frontend LB) and the basis being a clustered database / persistence layer. They provide several implementations for this.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.