title: MSMQ vs. SQL Server Service Broker
body: <p>I have an application that consists of three parts:</p>
  
  <ul>
  <li>a front-end web shop for end-users and business partners</li>
  <li>an order-management system to handle those orders</li>
  <li>a technical database system to handle all the technical details of those products and services ordered</li>
  </ul>
  
  <p>Today, those systems (which are on separate servers and being developed by separate teams) interoperate using WCF webservices.</p>
  
  <p>This setup up works fine - as long as all servers are up. Which they're not - not always, anyway. </p>
  
  <p>So I've started looking at using either MSMQ or SQL Server Service Broker to handle the communication between those systems - at least when it comes to the web shop storing an order into the order management system, or the order management system sending the technical data to the tech database system.</p>
  
  <p>I'm hoping to achieve more reliability in the entire system - users can still place orders and those won't get lost, even if the order management backend is temporarily unavailable.</p>
  
  <p>But the big question is: MSMQ or Service Broker?? All three systems are Windows- and .NET based, and use SQL Server already - on three separate servers. </p>
  
  <p>Does anyone have some solid, real-world facts that speak for (or against) one of those two technologies? What are your real-life experiences with those two sets of technologies? Pros and cons. If you could start from scratch - which one would you choose? Or would you pick something else (what?) entirely?</p>