Broker in SQL Server Express

I have been asked more than once if SQL Server Express has the Service Broker feature and if there are any limitations on the use. SQL Server 2005 Express Edition is a version of SQL Server 2005 that is available for free (strategically being released to compete against the free databases like MySQL). This version of SQL Server does come with Service Broker but has certain limitations.

There are no restrictions on creating Service Broker objects such as services, queues, message types and contracts. You can also have services begin dialogs and exchange messages within the same SQL Server instance, i.e. within the same broker/database as well as between brokers/databases hosted on the same server instance. Further, you can also use internal activation to kick-off stored procedures. The only limitation is when dialogs span SQL Server instances. In that case, at least one of the brokers on the route from the initiating service to the target service must be a full version (i.e. Standard or Enterprise Edition). So either the initiating service, the target service or one of the forwarders should be on a full/paid version of the product.

What this means is that you can use Express for building asychronous database applications within the same SQL Server instance without any problem. In an enterprise scenario with large backend machines running the full version, you can use Express at the mid-tier as forwarding brokers (routers) as well as clients at the front end.