title: Messaging, Queues and ESB's - I know where I want to be but not how to get there
body: <p>To cut a long story short, I am working on a project where we are rewriting a large web application for all the usual reasons. The main aim of the rewrite is to separate this large single application running on single server into many smaller decoupled applications, which can be run on many servers.</p>
  
  <p>Ok here's what I would like:</p>
  
  <p>I would like <code>HTTP</code> to be the main transport mechanism. When one application for example the CMS has been updated it will contact the broker via http and say <em><code>"I've changed"</code></em>, then the broker will send back a <em><code>200 OK</code></em> to say <em><code>"thanks I got the message"</code></em>. </p>
  
  <p>The broker will then look on its list of other applications who wanted to hear about CMS changes and pass the message to the url that the application left when it told the broker it wanted to hear about the message. </p>
  
  <p>The other applications will return <code>200 OK</code> when they receive the message, if not the broker keeps the message and queues it up for the next time someone tries to contact that application.</p>
  
  <p>The problem is I don't even know where to start or what I need to make it happen. I've been looking at <kbd>XMPP</kbd>, <kbd>ActiveMQ</kbd>, <kbd>RabbitMQ</kbd>, <kbd>Mule ESB</kbd> etc. and can see I could spend the next year going around in circles with this stuff.</p>
  
  <p>Could anyone offer any advice from personal experience as I would quite like to avoid learning lessons the hard way.</p>