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

Why Database Modernization Matters for AI

  When companies transition to the cloud, they typically begin with applications and virtual machines, which is often the easier part of the process. The actual complexity arises later when databases are moved. To save time and effort, cloud adoption is more of a cloud migration in an IaaS manner, fulfilling current, but not future needs. Even organisations that are already in the cloud find that their databases, although “migrated,” are not genuinely modernised. This disparity becomes particularly evident when they begin to explore AI technologies. Understanding Modernisation Beyond Migration Database modernisation is distinct from merely relocating an outdated database to Azure. It's about making your data layer ready for future needs, like automation, real-time analytics, and AI capabilities. AI needs high throughput, which can be achieved using native DB cloud capabilities. When your database runs in a traditional setup (even hosted in the cloud), in that case, you will enc...

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...

[Post Event] Azure AI Connect, March 2025

On March 13th, I had the opportunity to speak at Azure AI Connect about modern AI architectures.  My session focused on the importance of modernizing cloud systems to efficiently handle the increasing payload generated by AI.