TABLE OF CONTENTS


Introduction

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 servicesData is transferred between different applications and services using messages. 

A message is a container decorated with metadata and contains data. The data can be any kind of information, including structured data encoded with the common formats such as JSON (JavaScript Object Notation), XML, Apache Avro, Plain Text, etc. 


Concept

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. 


Topics

 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 usesTopics to send and receive messages between different component services. The below illustration explains this messaging model. 

Topic 


Scalability

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 

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


Graphical user interface, application, Teams 
Description automatically generated 


Step-3. Select your ‘Event System as Azure Service Bus and use the connection string associated with RootManageSharedAccessKey shared access policy rule in your Azure Service Bus resource to configure all services under Distributed Runtime Config. See the below screenshot: 


C:\Users\JAMES~1.COR\AppData\Local\Temp\SNAGHTMLce75254.PNG 

Step-4. Click ‘Update’ to add the latest changes in the system. 


Considerations 

Please consider the following key factors and recommendations for utilizing Azure Service Bus with VIDIZMO application: 


Throughput 

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. 


Premium Messaging: How fast is it? - Microsoft Tech Community 


Network Protocols 

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.