Frequently Asked Questions

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.

Consistency model compared to MSMQ

Queues are remote, instead of local, and this has several implications:

  • A message has to cross the network boundaries before it is persisted, this implies that it is subject to all kinds of network related issues like latency, timeouts, connection loss, network partitioning etc.
  • Remote queues do not play along in transactions, as transactions are very brittle because of the possible network issues mentioned in the previous point, but also because they would require server-side locks to function properly and allowing anyone to take unbound locks on a service is a very good way to get a denial of service situation. Hence Azure services typically don't allow transactions.

For more details refer to the Transactions in Azure article.

Exactly-once delivery model

By default it does not, it's an at-least-once delivery model. A feature called Duplicate Detection can be enabled, which will ensure the message is received exactly once. However, Duplicate Detection comes at the expense of throughput and is time constrained.

Last modified