MSMQ vs SQL Server Service Broker

Tengo una aplicación que consta de tres partes:

una tienda web front-end para usuarios finales y socios comercialesun sistema de gestión de pedidos para manejar esos pedidosUn sistema de base de datos técnicos para manejar todos los detalles técnicos de los productos y servicios solicitados

Hoy, esos sistemas (que están en servidores separados y que están siendo desarrollados por equipos separados) interoperan usando los servicios web de WCF.

Esta configuración funciona bien, siempre y cuando todos los servidores estén activos. Lo cual no son, no siempre, de todos modos.

Así que comencé a buscar el uso de MSMQ o SQL Server Service Broker para manejar la comunicación entre esos sistemas, al menos cuando se trata de la tienda web que almacena un pedido en el sistema de administración de pedidos, o el sistema de administración de pedidos que envía los datos técnicos al sistema de base de datos de tecnología.

Espero lograr una mayor confiabilidad en todo el sistema: los usuarios aún pueden hacer pedidos y esos no se perderán, incluso si el back-end de administración de pedidos no está disponible temporalmente.

Pero la gran pregunta es: ¿MSMQ o Service Broker? Los tres sistemas están basados en Windows y .NET, y ya usan SQL Server, en tres servidores separados.

¿Alguien tiene algunos hechos sólidos del mundo real que hablan a favor (o en contra) de una de esas dos tecnologías? ¿Cuáles son sus experiencias en la vida real con esos dos conjuntos de tecnologías? Pros y contras. Si pudieras comenzar desde cero, ¿cuál elegirías? ¿O elegirías algo más (¿qué?) Por completo?