A few of you have asked me about Azure Service Bus and its throttling mechanisms recently.
I wanted to write an article to let you know how the system works as it isn’t completely documented.
The most important aspect to understand is that a standard service bus instance applies throttling based on a credit system.
The system automatically monitors the credits and different calls to service bus namespaces have a different credit value.
When a call completes, the credit count is reduced by that amount. As long as the credit balance does not go below zero during a one second interval, no throttling is applied.
As this is dynamic, requests continue to go through as the balance per second goes below 0. (as there is still an amount of credits per second available)
As a consequence throttling isn’t automatically applied to all requests from a namespace or to a particularly entity, it is solely on the credit balance at that specific instance in time.
When using a premium service bus instance your service is provided on dedicated infrastructure. Throttling is applied once the infrastructure is exhausted and cannot handle the amount of requests to/from a premium namespace. This depends on the service level you choose.