Use SQL Server Service Broker for asynchronous transactional messaging from applications where transactional throughput and scalability is required, as well as rehydratable and failure resistant transactional consistency is required. The example would be that an ASP.NET web application should be able to accept web orders and send the orders to service broker. If the SQL Server goes down, the ASP.NET application should be able to continue to take and queue orders and submit them to the SQL Server when it becomes available. This also increases throughput and scalability because SQL Server will process the messages when it gets to them. Also, SQL Server, after a failure will come back up and continue to process the orders. When users visit the site, the ASP.NET application can then read the response to messages and give users the status of their orders.