title: MassTransit RabbitMQ Node distribution
body: <p>I'm investigating using MassTransit with RabbitMQ in our application as an ESB. The main benefit I'm looking for is adding durable asynchronous messaging processing to the incoming data stream.</p>
  
  <p>Our application profile has two parts:</p>
  
  <p>Incoming data stream</p>
  
  <ul>
  <li>One way messaging</li>
  <li>Processed asynchronously</li>
  <li>10k+ messages per minute</li>
  </ul>
  
  <p>Website activity</p>
  
  <ul>
  <li>Two way</li>
  <li>Ideally use c# async await language features but requires data in both directions</li>
  <li>&lt; 100 per minute</li>
  </ul>
  
  <p>The web app messaging isn't a necessity but would be nice to follow the same mechanism to full abstract away data access through the ESB.</p>
  
  <p><strong>Questions:</strong></p>
  
  <p>From what I've read; an ESB node should not know or care about any other node on the bus, it should just do it's own work and send messages onto the bus, waiting for replies if/when required. To me that means each web / app server would have it's own local clustered queue.
  Is this assumption correct?</p>
  
  <p>If that is correct; how would I programmatically add machines to the cluster? Are there any gotchas I need to be aware of?</p>
  
  <p>If this is not correct; how would I manage the queue cluster? Creating a dedicated cluster has it's own problems such as DNS entries, load-balancing for redundancy / offline nodes, etc</p>
  
  <p>I'm down with the functionality ESBs can add along with MassTransit's implementation however I am a little clouded with the logistics of the best practices of where / how to set it up in a durable configuration.</p>
  
  <p>Thanks for any feedback &amp; advice</p>
  
  <p><strong>Update</strong>
  We are utilising EC2 for machine infrastructure, in particular we use availability zones to minimise any data center outages. With this configuration we have 3 zones, each zone has a web server, app server and db server (Couchbase). We also utilise EC2's load balancers to share load between the zones.</p>
  
  <p>@Travis: Do you have any experience / advice of using MT / RMQ within Amazon's EC2?</p>