Addressing Logic

Component: Azure Service Bus Transport
NuGet Package NServiceBus.Azure.Transports.WindowsAzureServiceBus (6.x)
Target NServiceBus Version: 5.x

One of the responsibilities of the 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 Versions 6 and below, the Physical Addressing Logic implementation made a number of implicit assumptions regarding names, such as length limitations, legal characters, differences between paths and names, etc. There was no way to explicitly control those settings, and over time subtle variations started 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, customers were sometimes forced to game the system for valid reasons. For example they needed 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 started to expose certain checks as lambda expressions, which became collectively known as the Naming Conventions.


Last modified