<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: To AMQP or to XMPP, that is the question</title>
	<atom:link href="http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/</link>
	<description>Wizardry through open source</description>
	<lastBuildDate>Sat, 06 Feb 2010 23:01:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Kenneth Kalmer</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-766</link>
		<dc:creator>Kenneth Kalmer</dc:creator>
		<pubDate>Sun, 13 Dec 2009 20:06:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-766</guid>
		<description>Love affair has persisted. AMQP is part of my everyday work and has really nestled itself quite deeply into my toolbox. I still have my eyes on XMPP though, libraries like &lt;a href=&quot;http://github.com/sprsquish/blather&quot; rel=&quot;nofollow&quot;&gt;Blather&lt;/a&gt; makes XMPP a dream to work with. But like the post stresses, best tool for the job.</description>
		<content:encoded><![CDATA[<p>Love affair has persisted. AMQP is part of my everyday work and has really nestled itself quite deeply into my toolbox. I still have my eyes on XMPP though, libraries like <a href="http://github.com/sprsquish/blather" rel="nofollow">Blather</a> makes XMPP a dream to work with. But like the post stresses, best tool for the job.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rj</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-765</link>
		<dc:creator>Rj</dc:creator>
		<pubDate>Fri, 06 Nov 2009 11:40:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-765</guid>
		<description>So, how have you gone with AMQP?  Has your love affair persisted or are you back with XMPP?</description>
		<content:encoded><![CDATA[<p>So, how have you gone with AMQP?  Has your love affair persisted or are you back with XMPP?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Driving Business Processes in Ruby &#124; Open Sourcery</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-450</link>
		<dc:creator>Driving Business Processes in Ruby &#124; Open Sourcery</dc:creator>
		<pubDate>Mon, 06 Jul 2009 07:45:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-450</guid>
		<description>[...] tough, and the impact of the next decisions are even bigger. I recently tackled the issue of choosing between AMQP and XMPP (and I&#8217;m honestly still on the bench, even when I&#8217;m using both in production), and [...]</description>
		<content:encoded><![CDATA[<p>[...] tough, and the impact of the next decisions are even bigger. I recently tackled the issue of choosing between AMQP and XMPP (and I&#8217;m honestly still on the bench, even when I&#8217;m using both in production), and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Paul Weber</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-340</link>
		<dc:creator>Stephen Paul Weber</dc:creator>
		<pubDate>Tue, 05 May 2009 18:55:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-340</guid>
		<description>I think stpeter&#039;s point was that you don&#039;t even need a concept of friend requests in XMPP.  You should be able to safely ignore those packets, or just in general not use them.

XMPP is a stateful messaging protocol that happens to be really good at IM... it is not IM specific (although some XEP&#039;s are)</description>
		<content:encoded><![CDATA[<p>I think stpeter&#8217;s point was that you don&#8217;t even need a concept of friend requests in XMPP.  You should be able to safely ignore those packets, or just in general not use them.</p>
<p>XMPP is a stateful messaging protocol that happens to be really good at IM&#8230; it is not IM specific (although some XEP&#8217;s are)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Schaffrick</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-323</link>
		<dc:creator>Kyle Schaffrick</dc:creator>
		<pubDate>Fri, 01 May 2009 18:22:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-323</guid>
		<description>@Scott I think the secret sauce AMQP has that SMTP/NNTP lack is that the routing is configurable &quot;on the wire,&quot; in the sense that clients declare what exchanges, queues, and bindings they intend to use and how they relate to each other, as part of the ordinary course of using the broker&#039;s services. These meta-level features are defined by the AMQP spec, both in protocol and semantics.

On the other hand, a message queueing system implemented in SMTP/NNTP would have to A) define these meta-level features in an ad-hoc way and then implement them itself, separately from or as an extension to the actual broker/MTA, or B) give up this dynamic configurability, in which case the broker would have to know a priori (via configuration) what the distribution patterns should be.

The fact that (for instance) RabbitMQ had essentially *no* static configuration files to edit (in stark contrast with most MTAs, to be sure) baffled me for a time until I realized that it worked this way. After some consideration, I believe it is one of the great strengths of AMQP&#039;s approach.</description>
		<content:encoded><![CDATA[<p>@Scott I think the secret sauce AMQP has that SMTP/NNTP lack is that the routing is configurable &#8220;on the wire,&#8221; in the sense that clients declare what exchanges, queues, and bindings they intend to use and how they relate to each other, as part of the ordinary course of using the broker&#8217;s services. These meta-level features are defined by the AMQP spec, both in protocol and semantics.</p>
<p>On the other hand, a message queueing system implemented in SMTP/NNTP would have to A) define these meta-level features in an ad-hoc way and then implement them itself, separately from or as an extension to the actual broker/MTA, or B) give up this dynamic configurability, in which case the broker would have to know a priori (via configuration) what the distribution patterns should be.</p>
<p>The fact that (for instance) RabbitMQ had essentially *no* static configuration files to edit (in stark contrast with most MTAs, to be sure) baffled me for a time until I realized that it worked this way. After some consideration, I believe it is one of the great strengths of AMQP&#8217;s approach.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jay</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-302</link>
		<dc:creator>jay</dc:creator>
		<pubDate>Mon, 27 Apr 2009 23:23:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-302</guid>
		<description>Good thoughts, and good luck. I read this article yesterday that maybe helpful with AMQP. It&#039;s python but I don&#039;t think that should stall anyone;

http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-19/#comment-2376</description>
		<content:encoded><![CDATA[<p>Good thoughts, and good luck. I read this article yesterday that maybe helpful with AMQP. It&#8217;s python but I don&#8217;t think that should stall anyone;</p>
<p><a href="http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-19/#comment-2376" rel="nofollow">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-19/#comment-2376</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Stults</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-293</link>
		<dc:creator>Scott Stults</dc:creator>
		<pubDate>Sat, 25 Apr 2009 13:14:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-293</guid>
		<description>Whenever I see a new message queuing system, I always wonder why nobody chooses SMTP and NNTP.  Those protocols have been around forever.  They have solid, scalable implementations, support guaranteed delivery, and together support one-to-one and one-to-many transmission.  The writers of SOAP realized this, but I&#039;ve yet to see anyone use SMTP to deliver SOAP calls (and nobody wants to do SOAP nowadays anyway.)

That said, I agree that ruote and XMPP are excellent, and I look forward to seeing how your AMQP implementation works out.</description>
		<content:encoded><![CDATA[<p>Whenever I see a new message queuing system, I always wonder why nobody chooses SMTP and NNTP.  Those protocols have been around forever.  They have solid, scalable implementations, support guaranteed delivery, and together support one-to-one and one-to-many transmission.  The writers of SOAP realized this, but I&#8217;ve yet to see anyone use SMTP to deliver SOAP calls (and nobody wants to do SOAP nowadays anyway.)</p>
<p>That said, I agree that ruote and XMPP are excellent, and I look forward to seeing how your AMQP implementation works out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Mettraux</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-278</link>
		<dc:creator>John Mettraux</dc:creator>
		<pubDate>Wed, 22 Apr 2009 01:33:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-278</guid>
		<description>@Chris

the MVC model is fine, but sometimes the &#039;work&#039; can&#039;t simply be contained in a request/response cycle (generating a big pdf for instance). Pushing the work towards workers via a queue and replying immediately (&quot;we&#039;re working on it&quot;) is a common scenario. 

Now a worker may be a workflow engine orchestrating more complex units of work among specialized workers (and it can leverage a queue system to communicate with those sub-workers).

Ilya wrote someting related at http://www.igvita.com/2009/04/06/henry-ford-event-driven-architecture/ worth a read.

Best regards,</description>
		<content:encoded><![CDATA[<p>@Chris</p>
<p>the MVC model is fine, but sometimes the &#8216;work&#8217; can&#8217;t simply be contained in a request/response cycle (generating a big pdf for instance). Pushing the work towards workers via a queue and replying immediately (&#8220;we&#8217;re working on it&#8221;) is a common scenario. </p>
<p>Now a worker may be a workflow engine orchestrating more complex units of work among specialized workers (and it can leverage a queue system to communicate with those sub-workers).</p>
<p>Ilya wrote someting related at <a href="http://www.igvita.com/2009/04/06/henry-ford-event-driven-architecture/" rel="nofollow">http://www.igvita.com/2009/04/06/henry-ford-event-driven-architecture/</a> worth a read.</p>
<p>Best regards,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenneth Kalmer</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-272</link>
		<dc:creator>Kenneth Kalmer</dc:creator>
		<pubDate>Tue, 21 Apr 2009 08:39:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-272</guid>
		<description>@Pieter

Great input, thanks!

As far as I can tell nanite implements &quot;presence&quot;, I still have to dissect how they do it. I *assume* they use other queues where the agents push &quot;pings&quot; back to the &quot;masters&quot;... RestMS also looks promising, just gimme time to build up my AMQP skills from the ground up first :)

In my environment I just require the broker to persist messages until the consumer comes back up again, so on the short term it isn&#039;t a problem. But I can conjure up a few scenarios where presence does become important.

As for &quot;XMPP on top of AMQP&quot;, I actually suggested to friend that they look into using a queuing protocol for building a &quot;facebook chat&quot; for another social network, instead of wrapping XMPP up in an overly complex BOSH/Comet scenario. This was several weeks ago, and now that you mention it, it might be a great way to implement chat...</description>
		<content:encoded><![CDATA[<p>@Pieter</p>
<p>Great input, thanks!</p>
<p>As far as I can tell nanite implements &#8220;presence&#8221;, I still have to dissect how they do it. I *assume* they use other queues where the agents push &#8220;pings&#8221; back to the &#8220;masters&#8221;&#8230; RestMS also looks promising, just gimme time to build up my AMQP skills from the ground up first <img src='http://www.opensourcery.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In my environment I just require the broker to persist messages until the consumer comes back up again, so on the short term it isn&#8217;t a problem. But I can conjure up a few scenarios where presence does become important.</p>
<p>As for &#8220;XMPP on top of AMQP&#8221;, I actually suggested to friend that they look into using a queuing protocol for building a &#8220;facebook chat&#8221; for another social network, instead of wrapping XMPP up in an overly complex BOSH/Comet scenario. This was several weeks ago, and now that you mention it, it might be a great way to implement chat&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pieter Hintjens</title>
		<link>http://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/comment-page-1/#comment-271</link>
		<dc:creator>Pieter Hintjens</dc:creator>
		<pubDate>Tue, 21 Apr 2009 08:15:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=173#comment-271</guid>
		<description>@Kenneth,

A very interesting thread, the first I&#039;ve seen that dissects the different ways XMPP and AMQP work.  One of the keys to AMQP is precisely that a publisher does not know (or care) who is at the other end of the routing &amp; queuing system.  The recipients for a message are abstracted into an address (routing key, headers).

We&#039;ve found in practice is that this works very nicely.

But there are some cases where presence matters.  For example, when requesting a particular service, it&#039;s important to know if the service is absent (i.e. no subscribers for that particular address).  AMQP does this using the same hack as email does (&quot;if the message cannot be routed, send it back to me&quot;).

RestMS does it by equating a feed with a service, and letting clients test the presence / absence of a feed.  Like AMQP, it hides recipients from senders behind an address abstraction.

I suspect that XMPP is actually a higher-level protocol, which if we rolled the clock back some years, might be implementable on top of a generic messaging protocol like AMQP or RestMS.</description>
		<content:encoded><![CDATA[<p>@Kenneth,</p>
<p>A very interesting thread, the first I&#8217;ve seen that dissects the different ways XMPP and AMQP work.  One of the keys to AMQP is precisely that a publisher does not know (or care) who is at the other end of the routing &amp; queuing system.  The recipients for a message are abstracted into an address (routing key, headers).</p>
<p>We&#8217;ve found in practice is that this works very nicely.</p>
<p>But there are some cases where presence matters.  For example, when requesting a particular service, it&#8217;s important to know if the service is absent (i.e. no subscribers for that particular address).  AMQP does this using the same hack as email does (&#8220;if the message cannot be routed, send it back to me&#8221;).</p>
<p>RestMS does it by equating a feed with a service, and letting clients test the presence / absence of a feed.  Like AMQP, it hides recipients from senders behind an address abstraction.</p>
<p>I suspect that XMPP is actually a higher-level protocol, which if we rolled the clock back some years, might be implementable on top of a generic messaging protocol like AMQP or RestMS.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
