Azure Service Bus Queues integration approaches in .NET

604 Views Asked by At

There are different approaches to implement brokered messaging communication between services using Service Bus Queues (Topics):

Which of those approaches are more useful in which cases?

Any comparison of performance, abstraction level, testability, flexibility or facilities would be great.

1

There are 1 best solutions below

2
On

OK, now that I understand your question better, I see where the confusion is.

All 3 of the options that you are looking into are written by Microsoft.

Also, all 3 of those options are simply an abstraction - a client interface into the service that MS is providing.

None of them are faster, slower, etc. However, I would say that if you went the WCF route, then you can more easily abstract the technology choice a bit better.

What I mean by that is - you can develop a "GetMessage" contract in WCF that points to the service bus... and then later on change the design, and configure WCF to point to some other service and you wouldn't have to change the code.

So, that's one advantage for WCF.

That being said, CloudFX is built by Microsoft to give extra common functionality around the usage of the Azure Service Bus ... so don't ignore that. Look into the benefits of that API and decide if you and your team need those features.

Lastly, QueueClient is simply what CloudFX improves on, but adds no benefits like WCF. So you probably don't want to go with this route (considering your other 2 options).

Keep in mind that Azure uses a REST API under the hood for most of the communication... and so you might hit some unexpected performance issues if you don't configure your application correctly: http://tk.azurewebsites.net/2012/12/10/greatly-increase-the-performance-of-azure-storage-cloudblobclient/