Skip to main content

Service Bus Topics - Overview

This is the first post of a series of blog posts about Service Bus Topics. In this post we will see what Service Bus Topics is and what we can do with it.
Don’t let the name Topic intimidated you. This service, exposed by Windows Azure can be seen as a Service Bus Queues with steroids. The main feature of Service Bus Topics is the ability to publish a message to more than one subscriber (consumers). Each message sent to the Service Bus Topics goes a specific topic. Each topic is able to forward the message to each subscriber. We can imagine each subscriber has a private queue where the topic sends the message. All the messages sent to the topic will be received by each subscriber in the same order that were added to the topic.
The model of communication that is supported by Service Bus Topics is named publish/subscribe communication. This type of communication permits to have a communication from one-to-many. A message added to the topic will be received by all the subscribers.
One of the big advantages of using Service Bus Topics is scalability. Theoretically, we can have an unlimited numbers of subscribers to a topic. Each subscriber can be register/unregistered dynamically. Because of this it is very easy to reconfigure it.
One of the great functionalities of Service Bus Topics is the messaging filter. Each subscriber that is added to the topic can specify his own filters. Based on this filter we will receive the messages that validate his filter condition. Based on this, we can define “routing” schema for topics and subscribers. The filter expression is in SQL92 format – this SQL format is known by all of us and is very easy to use. But we will talk about this in another post.
Service Bus Topics are very similar with Service Bus Queues; I would say that topics are constructed over the queue. Because of this a lot of functionalities and features from the queue can be found to the topics also. For example the integration with WCF of the 4 properties of the Service Bus Topics that is valid also for Service Bus Topics:
  • Loose Coupling – we can add, remove subscribers without affecting the rest of the system
  • Load leveling – the topics can work in good conditions with load peaks and indirectly this peaks will be smoothed. The subscriber will not fell this peak.
  • Temporal decoupling – the producer of messages don’t need to know about the subscribers. In the same time subscribers don’t need to be online all the time.
  • Load balancing – a message can be consumer by more than one subscriber. The process of redirecting the message to each subscriber is resolved by Service Bus Topics.
In today post we saw what Service Bus Topics is. In the next post we will see how we can use it.

Comments

Popular posts from this blog

Windows Docker Containers can make WIN32 API calls, use COM and ASP.NET WebForms

After the last post , I received two interesting questions related to Docker and Windows. People were interested if we do Win32 API calls from a Docker container and if there is support for COM. WIN32 Support To test calls to WIN32 API, let’s try to populate SYSTEM_INFO class. [StructLayout(LayoutKind.Sequential)] public struct SYSTEM_INFO { public uint dwOemId; public uint dwPageSize; public uint lpMinimumApplicationAddress; public uint lpMaximumApplicationAddress; public uint dwActiveProcessorMask; public uint dwNumberOfProcessors; public uint dwProcessorType; public uint dwAllocationGranularity; public uint dwProcessorLevel; public uint dwProcessorRevision; } ... [DllImport("kernel32")] static extern void GetSystemInfo(ref SYSTEM_INFO pSI); ... SYSTEM_INFO pSI = new SYSTEM_INFO(...

How to audit an Azure Cosmos DB

In this post, we will talk about how we can audit an Azure Cosmos DB database. Before jumping into the problem let us define the business requirement: As an Administrator I want to be able to audit all changes that were done to specific collection inside my Azure Cosmos DB. The requirement is simple, but can be a little tricky to implement fully. First of all when you are using Azure Cosmos DB or any other storage solution there are 99% odds that you’ll have more than one system that writes data to it. This means that you have or not have control on the systems that are doing any create/update/delete operations. Solution 1: Diagnostic Logs Cosmos DB allows us activate diagnostics logs and stream the output a storage account for achieving to other systems like Event Hub or Log Analytics. This would allow us to have information related to who, when, what, response code and how the access operation to our Cosmos DB was done. Beside this there is a field that specifies what was th...

Cloud Myths: Cloud is Cheaper (Pill 1 of 5 / Cloud Pills)

Cloud Myths: Cloud is Cheaper (Pill 1 of 5 / Cloud Pills) The idea that moving to the cloud reduces the costs is a common misconception. The cloud infrastructure provides flexibility, scalability, and better CAPEX, but it does not guarantee lower costs without proper optimisation and management of the cloud services and infrastructure. Idle and unused resources, overprovisioning, oversize databases, and unnecessary data transfer can increase running costs. The regional pricing mode, multi-cloud complexity, and cost variety add extra complexity to the cost function. Cloud adoption without a cost governance strategy can result in unexpected expenses. Improper usage, combined with a pay-as-you-go model, can result in a nightmare for business stakeholders who cannot track and manage the monthly costs. Cloud-native services such as AI services, managed databases, and analytics platforms are powerful, provide out-of-the-shelve capabilities, and increase business agility and innovation. H...