<div dir="ltr">Thank you<br><br><div class="gmail_quote">On Wed, Feb 3, 2010 at 2:29 PM, Alexis Richardson <span dir="ltr">&lt;<a href="mailto:alexis.richardson@gmail.com">alexis.richardson@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Ben,<br>
<br>
I have taken the liberty of bcc&#39;ing a couple of people with experience<br>
of both XMPP and AMQP.  They may have some better answers to your<br>
questions.<br>
<div class="im"><br>
<br>
On Wed, Feb 3, 2010 at 11:55 AM, Ben Browitt &lt;<a href="mailto:ben.browitt@gmail.com">ben.browitt@gmail.com</a>&gt; wrote:<br>
&gt; Alexis<br>
&gt;<br>
&gt; Let&#39;s take Facebook chat as an example. You only have web interface with<br>
&gt; xmpp or a custom protocol.<br>
&gt; You have several servers that need to sync.<br>
&gt; How RabbitMQ can be usefull in this scenario?<br>
<br>
</div>I think there are several ways that RabbitMQ can be useful here.<br>
First of all though, please do note that &#39;xmpp chat&#39; is after all<br>
*the* core use case for ejabberd and I would very much expect that it<br>
would do the best job in many of these cases.<br>
<br>
That said: RabbitMQ could be useful if you want to use a proprietary<br>
or &#39;custom&#39; protocol, eg roll-your-own for the web interface, and a<br>
binary back end.  No use of XML.  And by the same token, RabbitMQ<br>
could be useful if you want to combine XMPP with this.<br>
<div class="im"><br>
<br>
&gt; Do you mean that each IM<br>
&gt; server will have a RabbitMQ node<br>
&gt; that will send and receive sync messages from other RabbitMQ nodes on other<br>
&gt; IM servers?<br>
<br>
</div>Well, that is not a use case I had considered since I would imagine<br>
that XMPP IM servers should federate happily OOTB.<br>
<br>
I don&#39;t have much experience of the load patterns that might make a<br>
person favour AMQP in the way that Jack tweeted about here:<br>
<a href="http://tweeteorites.com/tweet/8198995879" target="_blank">http://tweeteorites.com/tweet/8198995879</a><br>
<br>
I keep a list of links here that you may find useful:<br>
<a href="http://delicious.com/alexisrichardson/rabbitmq+xmpp" target="_blank">http://delicious.com/alexisrichardson/rabbitmq+xmpp</a><br>
<br>
Best wishes<br>
<font color="#888888"><br>
alexis<br>
</font><div><div></div><div class="h5"><br>
<br>
<br>
<br>
<br>
<br>
&gt;<br>
&gt; ben<br>
&gt;<br>
&gt; On Wed, Feb 3, 2010 at 1:43 PM, Alexis Richardson<br>
&gt; &lt;<a href="mailto:alexis.richardson@gmail.com">alexis.richardson@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Ben<br>
&gt;&gt;<br>
&gt;&gt; Let me have a stab at this.  Others may have more useful comments.<br>
&gt;&gt;<br>
&gt;&gt; The main benefit of using RabbitMQ in these cases is twofold:<br>
&gt;&gt;<br>
&gt;&gt; 1. You want to do pubsub and/or queueing, perhaps &quot;at scale&quot;<br>
&gt;&gt;<br>
&gt;&gt; 2. You want to make use of a RabbitMQ client (or clients) for an<br>
&gt;&gt; &#39;integration scenario&#39;.<br>
&gt;&gt;<br>
&gt;&gt; For example you may wish to combine both 1 and 2 to scale up your web<br>
&gt;&gt; or IM server by using queues to decouple user requests, from back end<br>
&gt;&gt; services that fulfil them, and then gather the results of the work on<br>
&gt;&gt; another queue before returning aggregate results to the user.<br>
&gt;&gt;<br>
&gt;&gt; Does this help?<br>
&gt;&gt;<br>
&gt;&gt; alexis<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Feb 3, 2010 at 11:06 AM, Ben Browitt &lt;<a href="mailto:ben.browitt@gmail.com">ben.browitt@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; Hi<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; There is the xmpp bridge with ejabberd but I wonder if native xmpp bosh<br>
&gt;&gt; &gt; support in rabbitmq makes sense.<br>
&gt;&gt; &gt; Let&#39;s say mochiweb accept xmpp http requests, a process per user receive<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; request and decide what to do with it.<br>
&gt;&gt; &gt; Each process will use the amqp erlang client to create a channel and<br>
&gt;&gt; &gt; then<br>
&gt;&gt; &gt; exchanges, queues and bindings when needed.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; If mochiweb handles the connections and a plugin handles the logic do I<br>
&gt;&gt; &gt; really gain anything by using rabbitmq?<br>
&gt;&gt; &gt; I have a feeling that rabbitmq is the way to go but I don&#39;t know why.<br>
&gt;&gt; &gt; What benefits do I get by using rabbitmq in this scenario?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Ben<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; rabbitmq-discuss mailing list<br>
&gt;&gt; &gt; <a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
&gt;&gt; &gt; <a href="http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>