Technology and Thoughts

Menu

Comparison of Windows Azure Storage Queues and Service Bus Queues

Note: Comparison list is slightly outdated with the new release of Windows Azure SDK 1.5 and as the products evolve.

Feature

Windows Azure Storage Queues

Service Bus Queues

Comments

Programming Models

Raw REST/HTTP

Yes

Yes

.NET API

Yes(Windows Azure Managed Library)

Yes(AppFabric SDK)

Windows Communication Foundation (WCF) binding

No

Yes

Windows Workflow Foundation (WF) integration

No

Yes

Protocols

Runtime

REST over HTTP

REST over HTTPBi-directional TCP

The Service Bus managed API leverages the bi-directional TCP protocol for improved performance over REST/HTTP.

Management

REST over HTTP

REST over HTTP

Messaging Fundamentals

Ordering Guarantees

No

First-In-First-Out (FIFO)

Note: guaranteed FIFO requires the use of sessions.

Message processing guarantees

At-Least-Once (ALO)

At Least-Once (ALO)Exactly-Once (EO)

The Service Bus generally supports the ALO guarantee; however EO can be supported by using SessionState to store application state and using transactions to atomically receive messages and update the SessionState. The AppFabric workflow uses this technique to provide EO processing guarantees.

Peek Lock

YesVisibility timeout: default=30s; max=2h

YesLock timeout: default=30s; max=5m

Windows Azure queues offer a visibility timeout to be set on each receive operation, while Service Bus lock timeouts are set per entity.

Duplicate Detection

No

Yes, send-side duplicate detection

The Service Bus will remove duplicate messages sent to a queue/topic (based on MessageId).

Transactions

No

Partial

The Service Bus supports local transactions involving a single entity (and its children). Transactions can also include updates to SessionState.

– Regarding ‘Message count’ : The New ServiceBus API provides visibility as to the size (Mb) and depth (number of messages) of a queue (and topic).
– Regarding ‘Arbitrary Metadata’ : The new ServiceBus API enable to add properties to messages in a topic. Those come even more handy when using topics and creating subscriptions.

I must thank you for the efforts you’ve put in writing this website. I really hope to see the same high-grade blog posts from you in the future as well. In truth, your creative writing abilities has inspired me to get my very own site now 😉