Comparison Criteria |
Storage Queues |
Service Bus Queues |
Ordering guarantee |
No
For more information, see the first note in the “Additional Information” section. |
Yes - First-In-First-Out (FIFO)
(through the use of messaging sessions) |
Delivery guarantee |
At-Least-Once |
At-Most-Once. |
Atomic operation support |
No. |
Yes. |
Receive behavior |
Non-blocking
(completes immediately if no new message is found) |
Blocking with/without timeout
(offers long polling, or the"Comet technique")
Non-blocking
(through the use of .NET managed API only)
|
Push-style API |
No. |
Yes
OnMessage and OnMessagesessions .NET API. |
Receive mode |
Peek & Lease |
Peek & Lock
Receive & Delete |
Exclusive access mode |
Lease-based. |
Lock-based. |
Lease/Lock duration |
30 seconds (default)
7 days (maximum) (You can renew or release a message lease using the Update Message API.) |
60 seconds (default)
You can renew a message lock using the Renew Lock API.
|
Lease/Lock precision |
Message level
(each message can have a different timeout value, which you can then update as needed while processing the message, by using theUpdateMessage API) . |
Queue level
(each queue has a lock precision applied to all of its messages, but you can renew the lock using theRenewLock API.)
|
Batched receive |
Yes
(explicitly specifying message count when retrieving messages, up to a maximum of 32 messages) . |
Yes
(implicitly enabling a pre-fetch property or explicitly through the use of transactions) |
Batched send |
No |
Yes
(through the use of transactions or client-side batching) |