[rabbitmq-discuss] does native web xmpp plugin in rabbitmq makes sense?

Alexis Richardson alexis.richardson at gmail.com
Wed Feb 3 12:29:14 GMT 2010


I have taken the liberty of bcc'ing a couple of people with experience
of both XMPP and AMQP.  They may have some better answers to your

On Wed, Feb 3, 2010 at 11:55 AM, Ben Browitt <ben.browitt at gmail.com> wrote:
> Alexis
> Let's take Facebook chat as an example. You only have web interface with
> xmpp or a custom protocol.
> You have several servers that need to sync.
> How RabbitMQ can be usefull in this scenario?

I think there are several ways that RabbitMQ can be useful here.
First of all though, please do note that 'xmpp chat' is after all
*the* core use case for ejabberd and I would very much expect that it
would do the best job in many of these cases.

That said: RabbitMQ could be useful if you want to use a proprietary
or 'custom' protocol, eg roll-your-own for the web interface, and a
binary back end.  No use of XML.  And by the same token, RabbitMQ
could be useful if you want to combine XMPP with this.

> Do you mean that each IM
> server will have a RabbitMQ node
> that will send and receive sync messages from other RabbitMQ nodes on other
> IM servers?

Well, that is not a use case I had considered since I would imagine
that XMPP IM servers should federate happily OOTB.

I don't have much experience of the load patterns that might make a
person favour AMQP in the way that Jack tweeted about here:

I keep a list of links here that you may find useful:

Best wishes


> ben
> On Wed, Feb 3, 2010 at 1:43 PM, Alexis Richardson
> <alexis.richardson at gmail.com> wrote:
>> Ben
>> Let me have a stab at this.  Others may have more useful comments.
>> The main benefit of using RabbitMQ in these cases is twofold:
>> 1. You want to do pubsub and/or queueing, perhaps "at scale"
>> 2. You want to make use of a RabbitMQ client (or clients) for an
>> 'integration scenario'.
>> For example you may wish to combine both 1 and 2 to scale up your web
>> or IM server by using queues to decouple user requests, from back end
>> services that fulfil them, and then gather the results of the work on
>> another queue before returning aggregate results to the user.
>> Does this help?
>> alexis
>> On Wed, Feb 3, 2010 at 11:06 AM, Ben Browitt <ben.browitt at gmail.com>
>> wrote:
>> > Hi
>> >
>> > There is the xmpp bridge with ejabberd but I wonder if native xmpp bosh
>> > support in rabbitmq makes sense.
>> > Let's say mochiweb accept xmpp http requests, a process per user receive
>> > a
>> > request and decide what to do with it.
>> > Each process will use the amqp erlang client to create a channel and
>> > then
>> > exchanges, queues and bindings when needed.
>> >
>> > If mochiweb handles the connections and a plugin handles the logic do I
>> > really gain anything by using rabbitmq?
>> > I have a feeling that rabbitmq is the way to go but I don't know why.
>> > What benefits do I get by using rabbitmq in this scenario?
>> >
>> > Ben
>> >
>> >
>> > _______________________________________________
>> > rabbitmq-discuss mailing list
>> > rabbitmq-discuss at lists.rabbitmq.com
>> > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>> >
>> >

More information about the rabbitmq-discuss mailing list