I've got a web app on ec2 and I'm introducing async messaging with rabbit.&nbsp;<div><br></div><div>My goal is more towards <u>reliability</u> than for maximum performance.&nbsp;</div><div>Having said that, what are the implications of the following strategies:</div><div><br></div><div>Given: <b>3 Clustered Web Servers, 2 Clustered App Servers</b></div><div><br></div><div>The scenario is that I'm publishing events from the web servers, which will are subscribed to by services running on the app servers.&nbsp;</div><div><br></div><div><b>Option 1</b>: Run a broker on each in a HA Cluster, sharing the queues between web &amp; app servers.&nbsp;</div><div><b>Option 2</b>: Run a dedicated messaging server which all the web &amp; app servers connect to&nbsp;<br></div><div><b>Option 3</b>: Run a broker on either all the web servers or all the app servers<br></div><div><br></div><div>At this stage I'm going with Option 1, which I feel is more difficult from an operational sense, i.e. managing configuration etc, but should give&nbsp;</div><div>me the most reliable setup.&nbsp;</div><div><br></div><div>Option 2 would probably be easier to get up and running, but I'd need an extra server or 2, and if the server goes down (it is the cloud after all)</div><div>i'll end up with service down time.&nbsp;</div><div><br></div><div>Option 3 is basically somewhere in between.&nbsp;</div><div><br></div><div>Is there anything else I need to consider?</div><div><br></div>