Addressing Logic

Component: Azure Service Bus Transport (Legacy)
NuGet Package NServiceBus.Azure.Transports.WindowsAzureServiceBus (6.x)
Target NServiceBus Version: 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, which is rendered obsolete by the Azure Service Bus transport built to target both .NET Framework and .NET Core. All new projects should use the new Azure Service Bus 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