TABLE OF CONTENTS
- Application Configuration and Component Services
This document explains Azure Service Bus and its relationship with VIDIZMO. We will talk about how Azure Service Bus is being utilized in VIDIZMO for messaging between component services.
VIDIZMO V8+ is an Event-Driven system that utilizes Azure Service Bus as the broker service for inter-communication between component services. Data is transferred between different applications and services using messages.
The messaging entities that form the core of the messaging capabilities in Azure Service Bus are queues, topics, subscriptions, and rules/actions.
VIDIZMO uses Azure Service Bus to create Topics for messaging between different component services.
This messaging model contains several Subscriptions underneath it. These are called Topic Subscriptions.
You can opt for this model if there is a need to send incoming messages to multiple users or systems. The maximum limit for subscribers in a Topic is 2000. A subscriber to a topic can receive a copy of each message sent to that topic.
In this model, you can have multiple receivers (subscribers) to receive the messages. The message copy can be sent to any number of subscribers associated with the Topic.
VIDIZMO uses Topics to send and receive messages between different component services. The below illustration explains this messaging model.
There are times when you would want to scale Azure Service Bus Topic processing, but nodes may not be powerful enough to handle thousands of requests per second. Creating multiple message factories; sending and receiving asynchronously, doing batch send/receive, and effective ways to scale Azure Service Bus, but they are helpful only for publisher and subscriber mode.
They will not have much effect on a low-power Topic Node. So, how would you scale your Azure Service Bus to handle more than 10,000 transactions/second? HERE are a few tips to help you achieve a vast number of transactions and low latency.
Deploy Azure Service Bus
For deploying Azure Service Bus, please see: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-create-namespace-portal
Premium and Standard Messaging Tiers
Azure offers Service Bus in Standard and Premium tiers. You can choose a service tier for each Service Bus service namespace that you create, and this tier selection applies across all queues, topics and subscriptions, relays, and Event Hubs created within that namespace. For comparison, please see Article
Shared Access Authorization Policies
Azure Service Bus namespace has a Shared Access Authorization policy made up of rules. The policy at the namespace level applies to all entities inside the namespace, irrespective of their individual policy configuration.
When you create a Service Bus namespace, a policy rule named is automatically created for the namespace. You would need to use the connection string associated with this policy rule to configure Azure Service Bus as the broker service in VIDIZMO.
Configure Azure Service Bus in VIDIZMO
As mentioned above, a broker service is needed to exchange data and messages between different VIDIZMO services for the application to function. To configure broker service in the VIDIZMO application, please follow the instructions given below:
Note: You will need the Administrator role to change Application Configuration in the VIDIZMO app.
Step-1. Login VIDIZMO application with Administrator user.
Step-2. Go to Navigation Menu > Control Panel > Application Configuration > VIDIZMO Runtime Configuration and click ‘Edit’ to change/update existing config.
Step-3. Select your ‘Event System’ as Azure Service Bus and use the connection string associated with ‘’ shared access policy rule in your Azure Service Bus resource to configure all services under Distributed Runtime Config. See the below screenshot:
Step-4. Click ‘Update’ to add the latest changes in the system.
Please consider the following key factors and recommendations for utilizing Azure Service Bus with VIDIZMO application:
As with any technical resourcing, prudent planning is key in ensuring that Azure Service Bus is providing adequate performance that your application expects. The right configuration or topology for your Service Bus namespaces depends on a host of factors involving your application architecture and how each of the Service Bus features is used.
Service Bus offers various pricing tiers. It is recommended to pick the appropriate tier for your application requirements.
Standard Tier - Suited for developer/test environments or low throughput scenarios where the applications are not sensitive to throttling.
Premium Tier (Recommended) - Suited for production environments with varied throughput requirements where predictable latency and throughput are required. Additionally, Service Bus premium namespaces can be auto-scaled and can be enabled to accommodate spikes in throughput.
Service Bus enables clients to send and receive messages via one of three protocols:
- Advanced Message Queuing Protocol (AMQP)
- Service Bus Messaging Protocol (SBMP)
- Hypertext Transfer Protocol (HTTP)
AMQP is the most efficient because it maintains the connection to Service Bus. It also implements batching and prefetching. Unless explicitly mentioned, all content in this article assumes the use of AMQP or SBMP.