Addressing Logic

Target Version: NServiceBus 5.x
Standard support for version 5.x of NServiceBus has expired. For more information see our Support Policy.
This page refers to the legacy Azure Service Bus transport that uses the WindowsAzure.ServiceBus NuGet package. This package is currently on extended support until May 2022, after which it will be out of support according to the support policy. All users should migrate to the Azure Service Bus transport transport.

One of the responsibilities of the Azure Service Bus transport is determining the names and physical location of entities in the underlying physical infrastructure. This is achieved by turning logical endpoint names into physical addresses of the Azure Service Bus entities, which is called Physical Addressing Logic.

In Azure Service Bus transport version 6 and below, the Physical Addressing Logic implementation makes a number of implicit assumptions regarding names, such as length limitations, legal characters, differences between paths and names, etc. There is no way to explicitly control those settings, and over time subtle variations start to show up.

For example, Mixed namespaces allowed paths and names to have up to 290 characters, while Messaging namespaces are capped at 260 characters. Moreover, users are sometimes forced to game the system for valid reasons; for example to figure out how to embed slashes ('/') in endpoint names to create sub-directories in the Azure Service Bus namespace registration system.

To mitigate these changes, the transport exposes certain checks as lambda expressions, known as the naming conventions.

Last modified