The Azure team recently shipped a Community Preview (CTP) for AppFabric, with Service Bus Queues and Service Bus Topics, which can be leveraged in a whole new set of scenarios to build Occasionally Connected or Distributed Systems.
The AppFabric Service Bus already provides a simple Messaging platform which is already in Production. This works fine as long as the Producer and the Consumer are online at the same time. What the CTP introduces in form of Service Bus Queues is the ability to create asynchronous messages, where the messages will be reliably stored till the consumer consumes the message – if the Consumer is offline, the messages will just keep queuing till the consumer comes back online.
As David Ingham explains, Asynchronous Queues offer a lot of potential benefits - especially load leveling and balancing, loose coupling between the different components of a system.
Service Bus Topics is very similar to Queues, with one major difference – the publish/subscribe pattern provided by Topics allows each published message to be available for multiple subscriptions once they are registered to that Topic. Each subscription tracks the last message it read in a particular Topic, so from the consumer end, each subscription looks like a separate virtual Queue.
Subscriptions can also have rules in place to filter messages from the Topic based on their properties – so each consumer can get it’s distinct subset of messages published in the Topic.
There could be some confusion in terminology between Service Bus Queues and Windows Azure Queues that form a part of the Azure Storage. As Clemens Vasters describes it in an interview on Channel9, the Windows Server equivalent of Azure Storage Queues is Named Pipes and Mailslots, whereas the equivalent of Service Bus Queues is MSMQ. More guidance on when to use which option is expected to come when the Service Bus Queue goes into production.
AppFabric is a cloud middleware platform for developing, deploying and managing applications on Windows Azure. It provides secure connectivity across network and geographic boundaries.