App Paritioning: Data Dependent Routing using Redirection

Following up on my previous post regarding how to talk to partitioned services with data dependent routing, here is another mechanism — redirection. One of the main drawbacks of having the routing service forward messages to the final target service was that you need to delegate trust to the routing service. The target cannot authenticate the initiators…


App Partitioning: Data Dependent Routing and Forwarding

One strategy to achieve scale-out is replicating data. Another is partitioning. Each has its own advantages and limitations; and you’d use one over the other depending on the nature of the data itself as well as the access pattern. While Service Broker naturally provides a mechanism for achieving scale-out when the data is replicated, it…


Remus joins the blogosphere

My teammate Remus Rusanu spawned his blog today with a great article on how to write a simple publish-subscribe service in SQL Server 2005 using Service Broker. While SQL Server 2005 does not natively support a pub-sub architecture and the only type of conversations provided by the Service Broker are peer-to-peer dialogs, Remus shows how…


Service Broker official documentation on SQL Server 2005 Books Online

The official documentation for SQL Server 2005 (called ‘Books Online’) is now available on MSDN. You can read the Service Broker section by clicking on the following link:,SQL.90).aspx


[PDC 2005] DAT303 SQL Server 2005: Building Distributed, Asynchronous Database Applications with the Service Broker

You can now download the demos used in Gerald and Roger’s PDC talk on the Service Broker from SSB CodeGallery. The demos include: Basics – Creating metadata, beginning a dialog, sending a message and receiving a message. CLR Services – Writing a CLR stored proc and activating it internally, writing a CLR application and activating…


Exporting and importing service listings into a database

You implemented a Service Broker service and now want others to be able to talk to it. But they will have to first create your message types and contracts to be able to begin a dialog and send messages to your target service. If their service does not reside in the same SQL Server instance,…


Activating queue reader processes on demand (Part 2)

Following up on my article titled “Activating queue reader processes on demand”, we are launching the External Activator sample. This sample demonstrates how you can build scalable Service Broker applications as executable processes that may be started on demand. The External Activator runs as an NT service and automatically starts a service program (i.e. an…


Solution to BrokerChallenge 0

It has been a week since I posted BrokerChallenge 0 and I am quite happy to see several people successfully cracked it. Still others gave it a shot but were not completely successful. So I decided to post the solution to the challenge. You can get the sample T-SQL script from here and modify it…


[BrokerChallenge 0] SEND me a message

Over the past week I have been planning to launch the first open to public Service Broker. At the same time, my dev team was having a discussion regarding how we can do something cool and interesting to get the community involved in our product. So I decided to setup simple services on my public…


SODA (Service-Oriented Data Architecture) at TechEd

Where do relational databases systems fit to provide reliability, scalability and resilience to loosely-coupled world of Service-Oriented Architecture (SOA)? Fueled by XML, CLR hosting, integration with Visual Studio 2005, native web-services, asynchronous execution, reliable messaging and query notifications (to mention just a few key technologies), Service-Oriented Data Architecture (SODA) has been an important theme of…