<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Messaging on Azure Blog articles</title>
    <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/bg-p/MessagingonAzureBlog</link>
    <description>Messaging on Azure Blog articles</description>
    <pubDate>Sat, 18 Apr 2026 12:53:52 GMT</pubDate>
    <dc:creator>MessagingonAzureBlog</dc:creator>
    <dc:date>2026-04-18T12:53:52Z</dc:date>
    <item>
      <title>Announcing general availability of Network Security Perimeter for Azure Service Bus</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-general-availability-of-network-security-perimeter/ba-p/4508179</link>
      <description>&lt;P&gt;Today we are excited to announce the general availability of &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/private-link/network-security-perimeter-concepts" target="_blank"&gt;Network Security Perimeter&lt;/A&gt; (NSP) support for Azure Service Bus. Network Security Perimeter allows you to define a logical network boundary around your Service Bus namespaces and other Azure PaaS resources, restricting public network access and enabling secure communication between services within the perimeter. This builds on the existing &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/network-security" target="_blank"&gt;network security options for Service Bus&lt;/A&gt; - IP firewall rules, VNet service endpoints, and private endpoints - by providing centralized, perimeter-level control over which resources can communicate with each other.&lt;/P&gt;
&lt;H1&gt;How Network Security Perimeter fits with existing network security&lt;/H1&gt;
&lt;P&gt;Service Bus already provides several options for controlling network access to your namespaces. IP firewall rules let you restrict access to specific IPv4 addresses. VNet service endpoints and private endpoints bring your Service Bus traffic onto the Microsoft backbone network, avoiding the public internet entirely. These features give you fine-grained control at the individual namespace level.&lt;/P&gt;
&lt;P&gt;Network Security Perimeter takes a different approach. Instead of configuring network rules on each resource individually, you create a perimeter and associate your PaaS resources with it. By default, resources inside the perimeter can communicate with each other, while all public access from outside the perimeter is denied. You then define explicit inbound and outbound access rules for any traffic that needs to cross the perimeter boundary. This means a Service Bus namespace, the Azure Key Vault it uses for customer-managed keys, and any other associated resources can all be managed under one consistent set of network rules.&lt;/P&gt;
&lt;P&gt;This is complementary to private endpoints. Private endpoints secure traffic between your virtual network and Service Bus; Network Security Perimeter secures the public endpoint of Service Bus itself. Used together, they provide defense-in-depth for your messaging infrastructure.&lt;/P&gt;
&lt;H1&gt;Concepts&lt;/H1&gt;
&lt;P&gt;Network Security Perimeter works with profiles and access rules. A profile is a collection of access rules that applies to the resources associated with it. You can use different profiles within the same perimeter to apply different rule sets to different groups of resources.&lt;/P&gt;
&lt;P&gt;There are two access modes:&lt;/P&gt;
&lt;P&gt;- Transition mode - the default mode when you first associate a resource. In this mode, Network Security Perimeter logs access attempts without enforcing restrictions, allowing you to understand your existing traffic patterns before locking things down.&lt;/P&gt;
&lt;P&gt;- Enforced mode&lt;STRONG&gt; &lt;/STRONG&gt;- once you are confident in your access rules, switch to enforced mode. All traffic from outside the perimeter is denied by default unless an explicit access rule permits it.&lt;/P&gt;
&lt;H1&gt;Access rules&lt;/H1&gt;
&lt;P&gt;Access rules control traffic crossing the perimeter boundary:&lt;/P&gt;
&lt;P&gt;- Inbound rules allow traffic from specific IP address ranges or Azure subscriptions to reach your Service Bus namespace.&lt;/P&gt;
&lt;P&gt;- Outbound rules&amp;nbsp;allow your Service Bus namespace to communicate with external resources identified by fully qualified domain names (FQDNs).&lt;/P&gt;
&lt;P&gt;Within the perimeter, PaaS-to-PaaS communication is allowed by default without additional rules.&lt;/P&gt;
&lt;H1&gt;Supported scenarios&lt;/H1&gt;
&lt;P&gt;Network Security Perimeter for Service Bus supports the following scenarios:&lt;/P&gt;
&lt;P&gt;- Customer-managed keys (CMK) - Service Bus namespaces that use customer-managed keys need to communicate with Azure Key Vault. By placing both the Service Bus namespace and the Key Vault within the same perimeter, this communication is secured without requiring additional network configuration.&lt;/P&gt;
&lt;P&gt;- Diagnostic logging - Network Security Perimeter provides access logs that record every allowed or denied connection attempt. These logs support audit and compliance requirements by giving you visibility into exactly what is accessing your Service Bus namespace and from where.&lt;/P&gt;
&lt;H1&gt;Getting started&lt;/H1&gt;
&lt;P&gt;You can associate your Service Bus namespace with a Network Security Perimeter directly from the namespace in the Azure portal:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;On your Service Bus namespace page, select &lt;STRONG&gt;Networking&lt;/STRONG&gt;&amp;nbsp;under &lt;STRONG&gt;Settings&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Select the &lt;STRONG&gt;Public access&lt;/STRONG&gt;&amp;nbsp;tab.&lt;/LI&gt;
&lt;LI&gt;In the&amp;nbsp;&lt;STRONG&gt;Network security perimeter&lt;/STRONG&gt;&amp;nbsp;section, select &lt;STRONG&gt;Associate&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;In the &lt;STRONG&gt;Select network security perimeter&lt;/STRONG&gt;&amp;nbsp;dialog, search for and select the perimeter you want to associate with the namespace.&lt;/LI&gt;
&lt;LI&gt;Select a profile to associate with the namespace.&lt;/LI&gt;
&lt;LI&gt;Select &lt;STRONG&gt;Associate&lt;/STRONG&gt; to complete the association.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;We recommend starting in transition mode to understand your existing traffic patterns, then moving to enforced mode once you have configured the appropriate access rules.&lt;/P&gt;
&lt;P&gt;More information on this feature can be found in the &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/network-security-perimeter" target="_blank"&gt;documentation&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Fri, 03 Apr 2026 16:31:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-general-availability-of-network-security-perimeter/ba-p/4508179</guid>
      <dc:creator>EldertGrootenboer</dc:creator>
      <dc:date>2026-04-03T16:31:50Z</dc:date>
    </item>
    <item>
      <title>Powering Event Driven Payments with Stripe and Azure Event Grid</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/powering-event-driven-payments-with-stripe-and-azure-event-grid/ba-p/4507094</link>
      <description>&lt;H1&gt;Introduction&lt;/H1&gt;
&lt;P&gt;Modern commerce systems are increasingly event-driven. Payments, subscriptions, refunds, disputes, and customer updates all generate signals that downstream systems must react quickly and reliably.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs.stripe.com/event-destinations" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Stripe events&lt;/STRONG&gt;&lt;/A&gt; give developers real-time visibility into what is happening inside their Stripe accounts. With the new &lt;A href="https://docs.stripe.com/event-destinations/eventgrid" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Azure Event Grid destination for events from Stripe &lt;/STRONG&gt;&lt;/A&gt;—&amp;nbsp;&lt;STRONG&gt;now available in Public Preview&lt;/STRONG&gt; — developers can now route those events directly into Azure and build scalable, event-driven architectures without managing webhook infrastructure or custom brokers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;H1&gt;Stripe events meet Azure Event Grid&lt;/H1&gt;
&lt;P&gt;Stripe produces &lt;A href="https://docs.stripe.com/api/v2/core/events" target="_blank" rel="noopener"&gt;events&lt;/A&gt; for changes across a wide range of objects, including payments, customers, subscriptions, accounts, meters, and more, covering hundreds of distinct event types. These events allow developers to react in near real time to business-critical changes.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/partner-events-overview" target="_blank" rel="noopener"&gt;Azure Event Grid&lt;/A&gt;&lt;/STRONG&gt; acts as a fully managed event broker between Stripe and Azure services. By configuring Azure Event Grid as an event destination in Stripe, events are automatically delivered to Azure subscribers such as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Azure Functions&lt;/LI&gt;
&lt;LI&gt;Logic Apps&lt;/LI&gt;
&lt;LI&gt;Event Hubs&lt;/LI&gt;
&lt;LI&gt;Service Bus&lt;/LI&gt;
&lt;LI&gt;Storage queues&lt;/LI&gt;
&lt;LI&gt;Hybrid Connections&lt;/LI&gt;
&lt;LI&gt;Azure Event Grid Namespace Topics&lt;/LI&gt;
&lt;LI&gt;Webhooks&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This creates a clean separation between &lt;STRONG&gt;event ingestion, routing, and processing&lt;/STRONG&gt;, following modern event-driven design principles.&lt;/P&gt;
&lt;H1&gt;Extending Stripe events into Fabric Real-Time Intelligence&lt;/H1&gt;
&lt;P&gt;Beyond operational workflows, Stripe events can also power real-time analytics scenarios using &lt;STRONG&gt;Microsoft Fabric Real-Time Intelligence&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Azure Event Grid namespaces integrate with Fabric through a &lt;A href="https://learn.microsoft.com/en-us/fabric/real-time-hub/add-source-azure-event-grid" target="_blank" rel="noopener"&gt;native connector&lt;/A&gt; that allows events to flow directly into &lt;STRONG&gt;Eventstream&lt;/STRONG&gt;. This makes it possible to ingest Stripe events into Fabric as continuous streams, where they can be transformed, enriched, and analyzed in real time.&lt;/P&gt;
&lt;P&gt;With this integration, teams can:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Stream Stripe events into Fabric without building custom ingestion pipelines&lt;/LI&gt;
&lt;LI&gt;Correlate payment and subscription events with other business signals&lt;/LI&gt;
&lt;LI&gt;Build real-time dashboards and analytics over live commerce data&lt;/LI&gt;
&lt;LI&gt;Enable downstream consumers such as KQL databases, dashboards, and analytics workloads&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This unlocks an end-to-end flow where &lt;STRONG&gt;Stripe events move seamlessly from operational systems into real-time analytics&lt;/STRONG&gt;, helping organizations gain immediate insight into payment behavior, revenue trends, and customer activity as events happen.&lt;/P&gt;
&lt;H1&gt;Common use cases enabled by Stripe events on Azure&lt;/H1&gt;
&lt;P&gt;Developers can unlock a wide range of scenarios by combining Stripe events with Azure services:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;&amp;nbsp;Payment and transaction fulfillment: &lt;/STRONG&gt;React to payment completions, refunds, disputes, and payment method updates to trigger downstream business logic.&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;&lt;STRONG&gt;&amp;nbsp;Subscription and billing lifecycle management: &lt;/STRONG&gt;Track subscription creation, renewals, cancellations, and plan changes to automate billing workflows.&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="3"&gt;
&lt;LI&gt;&lt;STRONG&gt;&amp;nbsp;Customer notifications and communications: &lt;/STRONG&gt;Trigger emails, push notifications, or in-app messages in response to payment or account events.&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="4"&gt;
&lt;LI&gt;&lt;STRONG&gt;&amp;nbsp;Financial operations and reconciliation: &lt;/STRONG&gt;Stream transaction events into accounting systems or data stores to keep financial records in sync.&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="5"&gt;
&lt;LI&gt;&lt;STRONG&gt;&amp;nbsp;Monitoring and real-time analytics: &lt;/STRONG&gt;Build real-time dashboards and insights on customer behavior, revenue trends, or churn indicators.&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="6"&gt;
&lt;LI&gt;&lt;STRONG&gt;&amp;nbsp;Customer lifecycle management: &lt;/STRONG&gt;Synchronize customer updates with CRM systems and other business platforms.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H1&gt;Getting started&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;The Stripe destination for Azure Event Grid is currently available in Public Preview&lt;/STRONG&gt;. To get started, configure&amp;nbsp;&lt;STRONG&gt;Azure Event Grid as an event destination&lt;/STRONG&gt; in your Stripe dashboard.&lt;/P&gt;
&lt;P&gt;Stripe provides clear guidance for setting up the Azure Event Grid destination and sending events into your Azure environment: &lt;A href="https://docs.stripe.com/event-destinations/eventgrid" target="_blank" rel="noopener"&gt;Stripe documentation for Azure Event Grid&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Once configured, events can be routed to Azure services or streamed into Fabric Eventstream for real-time analytics and insights.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2026 17:41:07 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/powering-event-driven-payments-with-stripe-and-azure-event-grid/ba-p/4507094</guid>
      <dc:creator>robece</dc:creator>
      <dc:date>2026-03-31T17:41:07Z</dc:date>
    </item>
    <item>
      <title>"No-Ops" Kafka Experience: Why Event Hubs is Your Default Destination for Streaming on Azure</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/quot-no-ops-quot-kafka-experience-why-event-hubs-is-your-default/ba-p/4481501</link>
      <description>&lt;P data-path-to-node="1"&gt;For many engineering teams, the promise of real-time data streaming is often overshadowed by the "operational tax" of maintaining the infrastructure. Managing an Apache Kafka® cluster traditionally means wrestling with broker patches, Zookeeper (or KRaft) orchestration, disk rebalancing, and the constant anxiety of manual scaling during peak loads.&lt;/P&gt;
&lt;P data-path-to-node="2"&gt;As a Product Manager for Azure Event Hubs, my conversations with customers usually start with a simple question: &lt;EM data-path-to-node="2" data-index-in-node="113"&gt;"How can I get the power of the Apache Kafka® ecosystem without the headache of managing it?"&lt;/EM&gt;&lt;/P&gt;
&lt;P data-path-to-node="3"&gt;The answer is &lt;STRONG data-path-to-node="3" data-index-in-node="14"&gt;Azure Event Hubs&lt;/STRONG&gt;. It isn’t just a service that &lt;EM data-path-to-node="3" data-index-in-node="61"&gt;talks&lt;/EM&gt; to Kafka; it is the &lt;STRONG data-path-to-node="3" data-index-in-node="87"&gt;de facto way to run Kafka on Azure&lt;/STRONG&gt;. If you are building on the Azure cloud, there is no longer a need to look at self-hosted, semi-managed, or complex virtual machine-based solutions. Event Hubs is the native, cloud-scale engine designed to be your default streaming destination.&lt;/P&gt;
&lt;H3 data-path-to-node="5"&gt;&lt;STRONG data-path-to-node="5" data-index-in-node="0"&gt;Your Code, Our Infrastructure&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-path-to-node="6"&gt;The most compelling reason to choose Azure Event Hubs is its &lt;STRONG data-path-to-node="6" data-index-in-node="61"&gt;protocol compatibility&lt;/STRONG&gt;. We provide a Kafka-compliant endpoint that allows your existing applications, frameworks, and tools to interact with Event Hubs seamlessly.&lt;/P&gt;
&lt;P data-path-to-node="7"&gt;Because the service is built on a multi-protocol engine, you keep the rich ecosystem of Apache Kafka®—including Kafka Connect and existing client libraries—while offloading the entire operational burden to Azure. Whether you are migrating an existing workload or starting fresh, you can leverage the industry-standard Kafka APIs while benefiting from a platform designed for the cloud.&lt;/P&gt;
&lt;H3 data-path-to-node="9"&gt;&lt;STRONG data-path-to-node="9" data-index-in-node="0"&gt;Choosing the Right Tier for Your Journey&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-path-to-node="10"&gt;We believe that high-scale streaming should be accessible to everyone, from three-person startups to global enterprises. Our tiers are structured to support your growth at every stage:&lt;/P&gt;
&lt;UL data-path-to-node="11"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="11,0,0" data-index-in-node="0"&gt;Standard Tier: The Cost-Effective Entry Point&lt;/STRONG&gt; For many common use cases—like basic log aggregation, website clickstream analysis, or simple pub-sub messaging—the &lt;STRONG data-path-to-node="11,0,0" data-index-in-node="162"&gt;Standard Tier&lt;/STRONG&gt; is the perfect fit. It supports core Apache Kafka® protocol features and provides a reliable, managed experience that allows teams to prove out concepts without heavy financial or operational commitments.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="11,1,0" data-index-in-node="0"&gt;Premium &amp;amp; Dedicated Tiers: Enterprise-Grade Power&lt;/STRONG&gt; When your workloads become mission-critical, our &lt;STRONG data-path-to-node="11,1,0" data-index-in-node="99"&gt;Premium&lt;/STRONG&gt; and &lt;STRONG data-path-to-node="11,1,0" data-index-in-node="111"&gt;Dedicated&lt;/STRONG&gt; tiers unlock the full potential of the platform. These tiers are built for high-throughput, low-latency scenarios and include advanced Kafka-specific features such as:
&lt;UL data-path-to-node="11,1,1"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="11,1,1,0,0" data-index-in-node="0"&gt;Kafka Transactions:&lt;/STRONG&gt; Essential for exactly-once processing requirements.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="11,1,1,1,0" data-index-in-node="0"&gt;Kafka Streams:&lt;/STRONG&gt; Support for stateful stream processing.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="11,1,1,2,0" data-index-in-node="0"&gt;Advanced Compression &amp;amp; Dynamic Partitioning:&lt;/STRONG&gt; For optimized scaling and cost management.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Geo-replication:&lt;/STRONG&gt; Turnkey replication of metadata and data across regions with customer managed RPO (including RPO=0).&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-path-to-node="13"&gt;&lt;STRONG data-path-to-node="13" data-index-in-node="0"&gt;The Hub of the Modern Data Stack&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-path-to-node="14"&gt;Event Hubs is the "nervous system" of the Azure ecosystem. It doesn't just ingest data; it bridges the gap between raw events and actionable insights through deep, native integrations:&lt;/P&gt;
&lt;OL data-path-to-node="15"&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="15,0,0" data-index-in-node="0"&gt;Serverless Scaling:&lt;/STRONG&gt; Features like &lt;STRONG data-path-to-node="15,0,0" data-index-in-node="34"&gt;Auto-Inflate&lt;/STRONG&gt; allow your throughput to scale automatically as traffic spikes, ensuring you never drop a message during a surprise surge.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="15,1,0" data-index-in-node="0"&gt;Microsoft Fabric &amp;amp; Real-Time Intelligence:&lt;/STRONG&gt; With the emergence of &lt;STRONG data-path-to-node="15,1,0" data-index-in-node="65"&gt;Microsoft Fabric&lt;/STRONG&gt;, Event Hubs serves as the primary feeder for real-time analytics. You can stream Kafka data directly into a Fabric Lakehouse with zero-code integrations, making "real-time" a reality for your entire data team.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG data-path-to-node="15,2,0" data-index-in-node="0"&gt;One-Click Archival:&lt;/STRONG&gt; Use &lt;STRONG data-path-to-node="15,2,0" data-index-in-node="24"&gt;Event Hubs Capture&lt;/STRONG&gt; to automatically batch and move streaming data into Azure Data Lake Storage for long-term cold storage or batch processing.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3 data-path-to-node="17"&gt;&lt;STRONG data-path-to-node="17" data-index-in-node="0"&gt;The Bottom Line&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-path-to-node="18"&gt;If you are building on Azure, running your own Kafka infrastructure is technical debt you don't need to carry. Azure Event Hubs provides the reliability of a battle-tested cloud-native engine with the familiarity of the Apache Kafka® ecosystem. It is the most robust, scalable, and integrated way to bring streaming to your organization.&lt;/P&gt;
&lt;H3 data-path-to-node="19"&gt;&lt;STRONG data-path-to-node="19" data-index-in-node="0"&gt;Ready to Migrate?&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-path-to-node="20"&gt;If you are currently running a Kafka cluster and are ready to offload the operational burden, our documentation provides a comprehensive roadmap. &lt;A href="https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview" target="_blank" rel="noopener" data-hveid="0" data-ved="0CAAQ_4QMahgKEwjmmoOzpeCRAxUAAAAAHQAAAAAQ1QE"&gt;Migrate to Azure Event Hubs for Apache Kafka Ecosystems&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Mar 2026 22:28:51 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/quot-no-ops-quot-kafka-experience-why-event-hubs-is-your-default/ba-p/4481501</guid>
      <dc:creator>ashish-chhabria</dc:creator>
      <dc:date>2026-03-25T22:28:51Z</dc:date>
    </item>
    <item>
      <title>Azure Event Grid MQTT Broker: Enterprise-Grade Messaging for the Connected World</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/azure-event-grid-mqtt-broker-enterprise-grade-messaging-for-the/ba-p/4504246</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;!-- HERO BANNER --&gt;
&lt;DIV style="background: linear-gradient(135deg, #0078D4 0%, #00188F 100%); border-radius: 12px; padding: 48px 40px; margin-bottom: 8px; position: relative; overflow: hidden;"&gt;
&lt;DIV style="display: inline-block; background: #1E6ABF; border: 1px solid #3880D0; border-radius: 100px; padding: 5px 14px; margin-bottom: 16px;"&gt;&lt;SPAN style="font-size: 11px; font-weight: bold; letter-spacing: 0.1em; text-transform: uppercase; color: #fff; font-family: Segoe UI, sans-serif;"&gt;Azure Messaging · What's New · March 2026&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;H1 style="font-family: Segoe UI, sans-serif; font-size: 36px; font-weight: bold; color: #ffffff; margin: 0 0 12px 0; line-height: 1.2; letter-spacing: -0.01em;"&gt;The Enterprise MQTT Broker&lt;BR /&gt;for Every Connected Ecosystem&lt;/H1&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 15px; color: #d8ecff; margin: 0 0 28px 0; max-width: 620px; line-height: 1.65;"&gt;Scale to millions of devices, enforce zero-trust security, and route real-time events across every service, system, and application — all on Azure's hyperscaler-grade messaging backbone.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding: 16px 8px;"&gt;&lt;A style="text-decoration: none;" title="Quotas and Limits — Azure Event Grid" href="https://learn.microsoft.com/en-us/azure/event-grid/quotas-limits" target="_blank"&gt;
&lt;DIV style="font-family: 'Courier New', monospace; font-size: 28px; font-weight: bold; color: #fff; line-height: 1;"&gt;1,000&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 10px; color: #c8e0ff; text-transform: uppercase; letter-spacing: 0.08em; margin-top: 4px;"&gt;msg/sec/session&lt;/DIV&gt;
&lt;/A&gt;&lt;/td&gt;&lt;td style="padding: 16px 8px;"&gt;
&lt;DIV style="font-family: 'Courier New', monospace; font-size: 28px; font-weight: bold; color: #fff; line-height: 1;"&gt;5M+&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 10px; color: #c8e0ff; text-transform: uppercase; letter-spacing: 0.08em; margin-top: 4px;"&gt;concurrent connections&lt;/DIV&gt;
&lt;/td&gt;&lt;td style="padding: 16px 8px;"&gt;
&lt;DIV style="font-family: 'Courier New', monospace; font-size: 28px; font-weight: bold; color: #fff; line-height: 1;"&gt;1 MB&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 10px; color: #c8e0ff; text-transform: uppercase; letter-spacing: 0.08em; margin-top: 4px;"&gt;large message support&lt;/DIV&gt;
&lt;/td&gt;&lt;td style="padding: 16px 8px;"&gt;
&lt;DIV style="font-family: 'Courier New', monospace; font-size: 28px; font-weight: bold; color: #fff; line-height: 1;"&gt;TLS 1.2+&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 10px; color: #c8e0ff; text-transform: uppercase; letter-spacing: 0.08em; margin-top: 4px;"&gt;enforced encryption&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;!-- INTRO CALLOUT --&gt;
&lt;DIV style="background: #EBF3FB; border-left: 5px solid #0078D4; border-radius: 0 10px 10px 0; padding: 20px 24px; margin: 24px 0;"&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: 600; color: #005a9e; margin: 0 0 6px 0;"&gt;The Modern Broker for Every Connected Ecosystem&lt;/P&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #323130; margin: 0; line-height: 1.65;"&gt;Whether you're connecting vehicles, factory floors, edge devices, retail infrastructure, financial systems, or cloud-native services — Azure Event Grid MQTT Broker is the enterprise messaging backbone that scales from prototype to planet. With deep Azure integration, full MQTT compliance, and hyperscaler-grade security, it's the broker you ship on when it truly matters.&lt;/P&gt;
&lt;/DIV&gt;
&lt;!-- ─── SECTION 1: PROTOCOL ─── --&gt;
&lt;DIV style="margin: 40px 0 0 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;Core Protocol&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;📡 Full MQTT Protocol Coverage&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;End-to-end MQTT compliance across all versions, transports, and messaging patterns — so any client, any device, any stack just connects.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 8px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 12px 14px;"&gt;
&lt;DIV style="display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #0078D4; margin-right: 8px; vertical-align: middle;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;SPAN style="font-family: 'Courier New', monospace; font-size: 12px; font-weight: 600; color: #201f1e;"&gt;MQTT v3.1.1&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; color: #6b6a69; margin-top: 3px; padding-left: 18px;"&gt;Full compliance&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 12px 14px;"&gt;
&lt;DIV style="display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #00B294; margin-right: 8px; vertical-align: middle;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;SPAN style="font-family: 'Courier New', monospace; font-size: 12px; font-weight: 600; color: #201f1e;"&gt;MQTT v5.0&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; color: #6b6a69; margin-top: 3px; padding-left: 18px;"&gt;Rich features + user props&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 12px 14px;"&gt;
&lt;DIV style="display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #5C2D91; margin-right: 8px; vertical-align: middle;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;SPAN style="font-family: 'Courier New', monospace; font-size: 12px; font-weight: 600; color: #201f1e;"&gt;TCP Transport&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; color: #6b6a69; margin-top: 3px; padding-left: 18px;"&gt;Low-latency, always-on&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 12px 14px;"&gt;
&lt;DIV style="display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #D83B01; margin-right: 8px; vertical-align: middle;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;SPAN style="font-family: 'Courier New', monospace; font-size: 12px; font-weight: 600; color: #201f1e;"&gt;WebSocket&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; color: #6b6a69; margin-top: 3px; padding-left: 18px;"&gt;Browser + web-native&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 12px 14px;"&gt;
&lt;DIV style="display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #E0A000; margin-right: 8px; vertical-align: middle;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;SPAN style="font-family: 'Courier New', monospace; font-size: 12px; font-weight: 600; color: #201f1e;"&gt;HTTP Publish&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; color: #6b6a69; margin-top: 3px; padding-left: 18px;"&gt;REST-based ingestion&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 10px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;💬&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;MQTT v5 Enhancements&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Richer error signaling, user properties, message expiry, and request–response patterns built in.&lt;/DIV&gt;
&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; letter-spacing: 0.1em; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🌐&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;&lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-http-publish" target="_blank"&gt;HTTP Publish (REST Bridge)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Non-MQTT services publish via HTTPS. Ideal for REST backends, legacy systems, and webhooks joining real-time workflows.&lt;/DIV&gt;
&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; letter-spacing: 0.1em; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🔀&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Shared Subscriptions&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Load-balance messages across consumer groups. Scale processing horizontally without duplication.&lt;/DIV&gt;
&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; letter-spacing: 0.1em; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 2: SECURITY ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;Zero-Trust Security&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;🔒 Enterprise Authentication Stack&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;Multi-layered security for every fleet size — from embedded devices to enterprise IAM platforms. Every connection authenticated, every access authorized.&lt;/P&gt;
&lt;!-- Auth table: flat layout, no nested tables, no border-spacing — aligns correctly in all renderers --&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 16px;"&gt;&lt;table style="width: 100%;"&gt;&lt;colgroup&gt;&lt;col style="width: 44px" /&gt;&lt;col /&gt;&lt;col style="width: 52px" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;
&lt;DIV style="width: 32px; height: 32px; background: #EBF3FB; border-radius: 6px; text-align: center; line-height: 32px; font-size: 15px;"&gt;🏛️&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;&lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/azure/event-grid/oauth-json-web-token-authentication" target="_blank"&gt;Microsoft Entra ID / OAuth 2.0 JWT&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #6b6a69; margin-top: 3px; line-height: 1.5;"&gt;Authenticate via any OIDC-compliant identity provider — Entra ID, Auth0, custom IAM platforms.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; white-space: nowrap;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 16px;"&gt;&lt;table style="width: 100%;"&gt;&lt;colgroup&gt;&lt;col style="width: 44px" /&gt;&lt;col /&gt;&lt;col style="width: 52px" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;
&lt;DIV style="width: 32px; height: 32px; background: #EBF3FB; border-radius: 6px; text-align: center; line-height: 32px; font-size: 15px;"&gt;📜&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;X.509 Certificate Authentication&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #6b6a69; margin-top: 3px; line-height: 1.5;"&gt;Hardware-rooted identity for devices. Mutual TLS, cert fingerprint validation, and PKI integration.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; white-space: nowrap;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 16px;"&gt;&lt;table style="width: 100%;"&gt;&lt;colgroup&gt;&lt;col style="width: 44px" /&gt;&lt;col /&gt;&lt;col style="width: 52px" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;
&lt;DIV style="width: 32px; height: 32px; background: #EBF3FB; border-radius: 6px; text-align: center; line-height: 32px; font-size: 15px;"&gt;🪝&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;&lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/azure/event-grid/authenticate-with-namespaces-using-webhook-authentication" target="_blank"&gt;Custom Webhook Authentication&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #6b6a69; margin-top: 3px; line-height: 1.5;"&gt;Dynamically validate clients via Azure Functions or external services. SAS keys, API keys, cert fingerprints — full programmatic control.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; white-space: nowrap;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 16px;"&gt;&lt;table style="width: 100%;"&gt;&lt;colgroup&gt;&lt;col style="width: 44px" /&gt;&lt;col /&gt;&lt;col style="width: 52px" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;
&lt;DIV style="width: 32px; height: 32px; background: #EBF3FB; border-radius: 6px; text-align: center; line-height: 32px; font-size: 15px;"&gt;🌐&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;TLS 1.2+ Enforced&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #6b6a69; margin-top: 3px; line-height: 1.5;"&gt;Transport-layer encryption enforced by default. No downgrade paths. Compliant with regulated industries.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle" style="padding: 0;"&gt;&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; white-space: nowrap;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;DIV style="background: #EBF3FB; border-left: 5px solid #5C2D91; border-radius: 0 10px 10px 0; padding: 18px 22px; margin-top: 16px;"&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #4a0072; margin: 0 0 5px 0;"&gt;Assigned Client Identifiers — Deterministic Identity&lt;/P&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 13px; color: #323130; margin: 0; line-height: 1.6;"&gt;Pre-assign approved MQTT client IDs for session continuity, enhanced diagnostics, and audit trails. Critical for regulated industries, long-lived device connections, and operational compliance across large fleets.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 3: SCALE ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;Hyperscaler Performance&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;⚡ Built for Massive Scale&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;From startup-scale prototypes to workloads with up to 5M+ concurrent device connections — Event Grid MQTT Broker grows with your ambitions.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 12px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-c7e0f4 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 24px;"&gt;&lt;A style="text-decoration: none;" href="https://learn.microsoft.com/en-us/azure/event-grid/quotas-limits" target="_blank"&gt;
&lt;DIV style="font-family: 'Courier New', monospace; font-size: 38px; font-weight: bold; color: #0078d4; line-height: 1;"&gt;1,000&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; font-weight: 600; color: #005a9e; text-transform: uppercase; letter-spacing: 0.08em; margin: 6px 0 4px;"&gt;messages/sec/session (ingress)&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 10px; color: #0078d4;"&gt;View Quotas &amp;amp; Limits →&lt;/DIV&gt;
&lt;/A&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; margin-top: 8px;"&gt;High-frequency industrial and automotive signal processing at full speed, per session.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-9dd9cb lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 24px;"&gt;&lt;A style="text-decoration: none;" href="https://learn.microsoft.com/en-us/azure/event-grid/quotas-limits" target="_blank"&gt;
&lt;DIV style="font-family: 'Courier New', monospace; font-size: 38px; font-weight: bold; color: #00b294; line-height: 1;"&gt;15&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; font-weight: 600; color: #006b5a; text-transform: uppercase; letter-spacing: 0.08em; margin: 6px 0 4px;"&gt;topic segments (GA)&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 10px; color: #00b294;"&gt;View Quotas &amp;amp; Limits →&lt;/DIV&gt;
&lt;/A&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; margin-top: 8px;"&gt;Deep hierarchical topic modeling for structured fleets, factories, and telemetry pipelines.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 10px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🔢&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;1 MB Large Message Support&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Send high-res images, video frames, and large telemetry batches. No pre-chunking needed.&lt;/DIV&gt;
&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;📈&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Auto Scale Up &amp;amp; Down&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Elastic namespace scaling that responds to demand in real time — pay for what you use, never throttle a workload.&lt;/DIV&gt;
&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Coming Soon in Preview&lt;/SPAN&gt;&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🌐&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;IPv6 Support&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Native dual-stack networking for modern infrastructure, next-gen telecom, and global device deployments.&lt;/DIV&gt;
&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Coming Soon in Preview&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🚀&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Up to 5M+ Connections&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Running large-scale workloads? Talk to us — we'll onboard your production workload with dedicated hands-on support.&lt;/DIV&gt;
&lt;A style="display: inline-block; background: #EBF3FB; color: #005a9e; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px; text-decoration: none;" href="mailto:askmqtt@microsoft.com" target="_blank"&gt;Contact Us →&lt;/A&gt;&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;📦&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Bulk Client Onboarding API&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Register thousands of devices in a single API call — credentials, certificates, and auth rules in batch. CI/CD-native.&lt;/DIV&gt;
&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;📤&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;High Egress Throughput&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Up to 500 msg/sec/instance egress for high fan-out scenarios. Perfect for dashboards, monitoring, and analytics consumers.&lt;/DIV&gt;
&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 4: INTEGRATION ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;Azure Native Integration&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;🔀 MQTT Events, Everywhere in Azure&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;Route MQTT streams directly into Azure's full analytics, automation, and real-time intelligence stack — seamlessly connected to every Azure service you already use.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 8px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 10px;"&gt;
&lt;DIV style="font-size: 22px; margin-bottom: 6px;"&gt;🌊&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; font-weight: 500; color: #323130;"&gt;&lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-events-fabric" target="_blank"&gt;Fabric Eventstreams&lt;/A&gt;&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 10px;"&gt;
&lt;DIV style="font-size: 22px; margin-bottom: 6px;"&gt;📊&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; font-weight: 500; color: #323130;"&gt;Azure Data Explorer&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 10px;"&gt;
&lt;DIV style="font-size: 22px; margin-bottom: 6px;"&gt;📨&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; font-weight: 500; color: #323130;"&gt;Event Hubs&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 10px;"&gt;
&lt;DIV style="font-size: 22px; margin-bottom: 6px;"&gt;⚙️&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; font-weight: 500; color: #323130;"&gt;Azure Functions&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-border-style-solid" style="border-width: 1px; padding: 14px 10px;"&gt;
&lt;DIV style="font-size: 22px; margin-bottom: 6px;"&gt;🔗&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 11px; font-weight: 500; color: #323130;"&gt;Logic Apps&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;DIV style="background: #E0F6F1; border-left: 5px solid #00B294; border-radius: 0 10px 10px 0; padding: 18px 22px; margin-top: 16px;"&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #006b5a; margin: 0 0 6px 0;"&gt;🌟 First-Class Microsoft Fabric Integration&lt;/P&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 13px; color: #323130; margin: 0; line-height: 1.65;"&gt;Route MQTT messages and CloudEvents directly from Event Grid Namespaces to &lt;STRONG&gt;&lt;A style="color: #006b5a;" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-events-fabric" target="_blank"&gt;Fabric Eventstreams&lt;/A&gt;&lt;/STRONG&gt; — enabling real-time analytics, storage, and visualization of IoT data without an Event Hub intermediary. Reference architectures for every industrial vertical are available on &lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/industry/mobility/architecture/automotive-messaging-data-analytics-content?toc=/azure/event-grid/toc.json" target="_blank"&gt;Microsoft Learn&lt;/A&gt; and via the &lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/fabric/real-time-intelligence/architectures/connected-fleet" target="_blank"&gt;RTI Reference Architectures&lt;/A&gt;.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 5: LWT + RETAIN ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;State &amp;amp; Presence&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;💡 Last Will &amp;amp; Testament + Retained Messages&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;Know the last known state of every device, and be instantly notified when something goes offline — essential for mission-critical connected systems.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 10px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;📣&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Last Will &amp;amp; Testament (LWT)&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Immediately notify downstream subscribers when a device disconnects unexpectedly. Critical for industrial automation, fleet monitoring, and health-critical telemetry.&lt;/DIV&gt;
&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;📌&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;&lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-retain" target="_blank"&gt;Retained Messages&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6; margin-bottom: 10px;"&gt;Subscribers receive the latest device value immediately on connect. Configurable expiry, on-demand clearing, Get/List API, and portal experience coming soon.&lt;/DIV&gt;
&lt;SPAN style="background: #E6F7EE; color: #107c10; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;GA&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 6: SPARKPLUG B ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;Industry 4.0&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;🏭 Sparkplug B on Azure — Smart Factory, Unlocked&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;The industrial MQTT standard runs natively on Event Grid MQTT Broker — bringing real-time factory floor intelligence to Azure analytics pipelines. &lt;A style="color: #0078d4; font-weight: 600;" href="https://learn.microsoft.com/en-us/azure/event-grid/sparkplug-support" target="_blank"&gt;Learn more about Sparkplug B support →&lt;/A&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 10px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🔴&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Device Lifecycle (BIRTH/DEATH)&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Track when machines come online and offline. LWT handles unexpected disconnects with zero configuration.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🔧&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;SCADA Integration&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Auto-discover tags in Ignition SCADA with Cirrus Link Chariot. Seamless edge-to-cloud tag sync and live machine vitals.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;📊&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Azure Data Explorer / Fabric&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Industrial binary Sparkplug payloads ingested into ADE or Fabric for real-time dashboards and automated alerting.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;DIV style="background: #F8FBFE; border: 1px solid #C7E0F4; border-radius: 10px; padding: 20px 24px;"&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 12px; font-weight: 600; color: #005a9e; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 14px 0;"&gt;Edge to Cloud: How It Flows&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="width: 28px; height: 28px; background: #0078D4; border-radius: 50%; text-align: center; line-height: 28px; font-family: 'Courier New', monospace; font-size: 12px; font-weight: bold; color: #fff;"&gt;1&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;Sensors on the factory floor&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; margin-top: 3px;"&gt;Machines publish temperature, RPM, and status as Sparkplug B messages via edge gateways.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="width: 28px; height: 28px; background: #0078D4; border-radius: 50%; text-align: center; line-height: 28px; font-family: 'Courier New', monospace; font-size: 12px; font-weight: bold; color: #fff;"&gt;2&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;Azure Event Grid MQTT Broker ingests&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; margin-top: 3px;"&gt;QoS 1 delivery, TLS secured, with LWT for device state awareness and retained messages for new subscribers.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="width: 28px; height: 28px; background: #0078D4; border-radius: 50%; text-align: center; line-height: 28px; font-family: 'Courier New', monospace; font-size: 12px; font-weight: bold; color: #fff;"&gt;3&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;SCADA auto-discovers tags&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; margin-top: 3px;"&gt;Ignition SCADA with Chariot Cirrus Link sees all published tags in real time — zero manual configuration.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="width: 28px; height: 28px; background: #0078D4; border-radius: 50%; text-align: center; line-height: 28px; font-family: 'Courier New', monospace; font-size: 12px; font-weight: bold; color: #fff;"&gt;4&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-top"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e;"&gt;Azure Data Explorer / Fabric analytics&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; margin-top: 3px;"&gt;Same stream bifurcated — live operational view and cloud-scale analytics for predictive maintenance and automated alerting.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 7: OBSERVABILITY ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;Operational Visibility&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;📊 Deep Metrics for Every Deployment&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;Full operational telemetry across all broker functions — detect issues, optimize throughput, and ensure SLA compliance at any scale.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 10px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;⏱️&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;&lt;A style="color: #0078d4;" href="https://learn.microsoft.com/en-us/azure/event-grid/monitor-mqtt-delivery-reference#metrics" target="_blank"&gt;CONNACK / PUBACK Latency&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Measure end-to-end connection and publish acknowledgment times. Baseline and alert on latency degradation.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;✅&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Publish / Subscribe Success Rates&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Track success, failure, and throttling events per topic and per session to quickly isolate problems.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-edebe9 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;
&lt;DIV style="font-size: 20px; margin-bottom: 8px;"&gt;🔌&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin-bottom: 6px;"&gt;Active Connections&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Real-time view of live connections, throughput, and session health across your entire device fleet.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 8: INDUSTRIES ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;Customer Impact&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;🌍 Built for Every Connected Industry&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;From connected vehicles to financial trading infrastructure to smart retail — Event Grid MQTT Broker powers the most demanding workloads across every sector.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 10px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-background-color-custom-003a8c lia-vertical-align-top" style="padding: 22px;"&gt;
&lt;DIV style="font-size: 24px; margin-bottom: 10px;"&gt;🚗&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: bold; color: #fff; margin-bottom: 10px;"&gt;Connected Automotive&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #c8e0ff; line-height: 1.8;"&gt;→ Real-time vehicle telemetry at fleet scale&lt;BR /&gt;→ Over-the-air event routing and signaling&lt;BR /&gt;→ Edge-to-cloud V2X messaging pipelines&lt;BR /&gt;→ TLS/mTLS for per-vehicle identity&lt;BR /&gt;→ High-frequency CAN bus signal ingestion&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-background-color-custom-0a6b20 lia-vertical-align-top" style="padding: 22px;"&gt;
&lt;DIV style="font-size: 24px; margin-bottom: 10px;"&gt;🏭&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: bold; color: #fff; margin-bottom: 10px;"&gt;Smart Manufacturing&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #c0f0cc; line-height: 1.8;"&gt;→ Sparkplug B + SCADA tag auto-discovery&lt;BR /&gt;→ Predictive maintenance event pipelines&lt;BR /&gt;→ Factory floor machine state monitoring&lt;BR /&gt;→ Bulk device onboarding for plant rollouts&lt;BR /&gt;→ QoS 1 delivery for critical control signals&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-background-color-custom-4a1a7a lia-vertical-align-top" style="padding: 22px;"&gt;
&lt;DIV style="font-size: 24px; margin-bottom: 10px;"&gt;🖥️&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: bold; color: #fff; margin-bottom: 10px;"&gt;DCIM / Data Centre&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #dcc8ff; line-height: 1.8;"&gt;→ Real-time rack power and thermal monitoring&lt;BR /&gt;→ High-frequency sensor event ingestion&lt;BR /&gt;→ Automated alerting and threshold triggers&lt;BR /&gt;→ Secure multi-tenant device namespaces&lt;BR /&gt;→ Fabric Eventstreams for real-time dashboards&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-background-color-custom-00476b lia-vertical-align-top" style="padding: 22px;"&gt;
&lt;DIV style="font-size: 24px; margin-bottom: 10px;"&gt;🏦&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: bold; color: #fff; margin-bottom: 10px;"&gt;Finance &amp;amp; Payments&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #b8e4f4; line-height: 1.8;"&gt;→ Low-latency event streaming for trading signals&lt;BR /&gt;→ Real-time payment status notifications&lt;BR /&gt;→ Fraud detection event pipelines&lt;BR /&gt;→ OAuth 2.0 / Entra ID for regulated access&lt;BR /&gt;→ Audit-ready assigned client identifiers&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-background-color-custom-8b2400 lia-vertical-align-top" style="padding: 22px;"&gt;
&lt;DIV style="font-size: 24px; margin-bottom: 10px;"&gt;🛒&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: bold; color: #fff; margin-bottom: 10px;"&gt;Retail &amp;amp; Commerce&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #ffd0b8; line-height: 1.8;"&gt;→ Real-time inventory and shelf sensor updates&lt;BR /&gt;→ Point-of-sale event routing at scale&lt;BR /&gt;→ Connected checkout and payment device streams&lt;BR /&gt;→ In-store IoT device fleet management&lt;BR /&gt;→ Live promotions and pricing event broadcast&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-background-color-custom-235200 lia-vertical-align-top" style="padding: 22px;"&gt;
&lt;DIV style="font-size: 24px; margin-bottom: 10px;"&gt;🏢&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: bold; color: #fff; margin-bottom: 10px;"&gt;Smart Buildings&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #c4eca8; line-height: 1.8;"&gt;→ HVAC, lighting, and energy sensor telemetry&lt;BR /&gt;→ Access control and occupancy event streams&lt;BR /&gt;→ Elevator and facility equipment monitoring&lt;BR /&gt;→ Multi-tenant building namespace isolation&lt;BR /&gt;→ Retained messages for last-known device state&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR style="border: none; border-top: 1px solid #EDEBE9; margin: 36px 0;" /&gt;&lt;!-- ─── SECTION 9: COMING SOON ─── --&gt;
&lt;DIV style="margin: 0;"&gt;
&lt;P style="font-family: 'Courier New', monospace; font-size: 10px; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; color: #0078d4; margin: 0 0 4px 0;"&gt;What's Next&lt;/P&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 22px; font-weight: bold; color: #201f1e; margin: 0 0 8px 0;"&gt;🔭 Coming Soon to Preview&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 14px; color: #605e5c; margin: 0 0 20px 0; line-height: 1.65;"&gt;These capabilities are entering preview soon — start evaluating for your workloads today.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%; border-spacing: 10px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-f0d560 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin: 8px 0 5px;"&gt;Large Message Packets (1 MB)&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Send images, video frames, and large telemetry batches without chunking. Streamlines edge-to-cloud ingestion.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-f0d560 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin: 8px 0 5px;"&gt;Shared Subscriptions&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Load-balance across consumer groups for parallel message processing at scale — no duplication, built-in fault tolerance.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-f0d560 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin: 8px 0 5px;"&gt;Subscription Identifier&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;MQTT v5 compliance — tag subscriptions for routing, multiplexing, and fine-grained handler dispatch.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-f0d560 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Preview&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin: 8px 0 5px;"&gt;Bulk Client Onboarding API&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Provision entire device fleets in a single API call. Automate with CI/CD pipelines for factory and field deployments.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-border-color-custom-f0d560 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Coming Soon&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin: 8px 0 5px;"&gt;Auto Scale Up &amp;amp; Down&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Elastic namespace scaling that automatically expands and contracts broker capacity in response to real-time load.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-border-color-custom-f0d560 lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 18px;"&gt;&lt;SPAN style="background: #FFF4CE; color: #8a6600; font-family: 'Courier New', monospace; font-size: 9px; font-weight: bold; text-transform: uppercase; padding: 2px 8px; border-radius: 100px;"&gt;Coming Soon&lt;/SPAN&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: 600; color: #201f1e; margin: 8px 0 5px;"&gt;IPv6 Support&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 12px; color: #605e5c; line-height: 1.6;"&gt;Dual-stack connectivity for next-gen networks, modern telecom infrastructure, and global IoT deployments.&lt;/DIV&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;!-- Early access CTA --&gt;
&lt;DIV style="background-color: #0052a0; border-radius: 12px; padding: 28px 32px; margin-top: 20px;"&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-middle"&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 16px; font-weight: bold; color: #fff; margin-bottom: 6px;"&gt;Want early access to any of these previews?&lt;/DIV&gt;
&lt;DIV style="font-family: Segoe UI, sans-serif; font-size: 13px; color: #c0dcff; line-height: 1.6; max-width: 560px;"&gt;We're actively onboarding early customers for all upcoming preview capabilities. Whether you're running a connected fleet, industrial workload, or large-scale IoT deployment — get in touch and we'll get you started.&lt;/DIV&gt;
&lt;/td&gt;&lt;td class="lia-vertical-align-middle"&gt;&lt;A style="display: inline-block; background: #fff; color: #0078d4; font-family: Segoe UI, sans-serif; font-size: 13px; font-weight: bold; padding: 12px 24px; border-radius: 6px; text-decoration: none;" href="mailto:askmqtt@microsoft.com" target="_blank"&gt;Contact Us for Early Access →&lt;/A&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;!-- ─── FINAL CTA ─── --&gt;
&lt;DIV style="background-color: #0052a0; border-radius: 16px; padding: 48px 40px; margin: 32px 0 0; text-align: center;"&gt;
&lt;H2 style="font-family: Segoe UI, sans-serif; font-size: 28px; font-weight: bold; color: #fff; margin: 0 0 12px 0; letter-spacing: -0.01em;"&gt;Ready to Connect Everything?&lt;/H2&gt;
&lt;P style="font-family: Segoe UI, sans-serif; font-size: 15px; color: #c0dcff; max-width: 480px; margin: 0 auto 28px; line-height: 1.65;"&gt;Azure Event Grid MQTT Broker is generally available. Start building enterprise-grade connected ecosystems today — or talk to us about your production workload.&lt;/P&gt;
&lt;DIV&gt;&lt;A style="display: inline-block; background: #fff; color: #0078d4; font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: bold; padding: 13px 28px; border-radius: 6px; margin: 4px 6px; text-decoration: none;" href="https://learn.microsoft.com/en-us/azure/event-grid/overview" target="_blank"&gt;Get Started on Azure&lt;/A&gt; &lt;A style="display: inline-block; background: transparent; color: #fff; border: 1.5px solid #A8CFF0; font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: 600; padding: 12px 28px; border-radius: 6px; margin: 4px 6px; text-decoration: none;" href="mailto:askmqtt@microsoft.com" target="_blank"&gt;Talk to an Expert →&lt;/A&gt; &lt;A style="display: inline-block; background: transparent; color: #fff; border: 1.5px solid #A8CFF0; font-family: Segoe UI, sans-serif; font-size: 14px; font-weight: 600; padding: 12px 28px; border-radius: 6px; margin: 4px 6px; text-decoration: none;" href="https://learn.microsoft.com/en-us/fabric/real-time-intelligence/architectures/connected-fleet" target="_blank"&gt;Explore Reference Architectures&lt;/A&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;!-- FOOTER --&gt;
&lt;DIV style="border-top: 1px solid #EDEBE9; padding: 20px 0; margin-top: 32px;"&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-middle"&gt;&lt;SPAN style="font-family: 'Courier New', monospace; font-size: 11px; color: #6b6a69;"&gt;© 2026 Microsoft Azure · Event Grid MQTT Broker&lt;/SPAN&gt;&lt;/td&gt;&lt;td class="lia-vertical-align-middle"&gt;&lt;SPAN style="background: #F3F2F1; padding: 3px 10px; border-radius: 100px; margin-left: 6px; font-family: Segoe UI, sans-serif; font-size: 11px; color: #605e5c;"&gt;Azure&lt;/SPAN&gt; &lt;SPAN style="background: #F3F2F1; padding: 3px 10px; border-radius: 100px; margin-left: 6px; font-family: Segoe UI, sans-serif; font-size: 11px; color: #605e5c;"&gt;MQTT&lt;/SPAN&gt; &lt;SPAN style="background: #F3F2F1; padding: 3px 10px; border-radius: 100px; margin-left: 6px; font-family: Segoe UI, sans-serif; font-size: 11px; color: #605e5c;"&gt;IoT&lt;/SPAN&gt; &lt;SPAN style="background: #F3F2F1; padding: 3px 10px; border-radius: 100px; margin-left: 6px; font-family: Segoe UI, sans-serif; font-size: 11px; color: #605e5c;"&gt;Event Grid&lt;/SPAN&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 23 Mar 2026 17:48:18 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/azure-event-grid-mqtt-broker-enterprise-grade-messaging-for-the/ba-p/4504246</guid>
      <dc:creator>Connected-Seth</dc:creator>
      <dc:date>2026-03-23T17:48:18Z</dc:date>
    </item>
    <item>
      <title>Introducing Administration Client Support for the Azure Service Bus Emulator</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/introducing-administration-client-support-for-the-azure-service/ba-p/4486433</link>
      <description>&lt;P&gt;We’re excited to announce&lt;STRONG&gt; &lt;/STRONG&gt;administration client support for the Azure Service Bus emulator, extending the emulator beyond messaging operations to include management capabilities such as creating, updating, and deleting entities locally.&lt;/P&gt;
&lt;P&gt;Azure Service Bus is a fully managed enterprise message broker that supports reliable messaging through queues and publish‑subscribe topics. Since the introduction of the local emulator, developers have been able to develop and test message flows locally. With this update, the emulator now supports a broader set of workflows that depend on management operations as part of application startup or deployment.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why Administration Client support?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Until now, the Service Bus emulator supported declarative entity configuration through a configuration file, allowing developers to define entities before starting the emulator. While this worked well for static setups, it limited workflows that require dynamic, runtime entity creation or management.&lt;/P&gt;
&lt;P&gt;Administration Client support unlocks on‑the‑fly entity creation and management, enabling developers to create, update, or delete entities while the emulator is running. This removes the need to restart the emulator for common management operations and brings the local development experience closer to real‑world Azure Service Bus usage.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How it works&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;By default, the emulator uses port 5300 for management operations. When performing management tasks with the Service Bus Administration Client, be sure to add the port number to the emulator connection string.&lt;/P&gt;
&lt;P&gt;Declarative configuration using the emulator’s configuration file remains supported and continues to serve as&lt;STRONG&gt; &lt;/STRONG&gt;the source of truth during emulator initialization. Any configuration defined in the file is reapplied when the emulator is initialized and overrides entities created through the Administration Client, making it easy to reset or standardize local environments.&lt;/P&gt;
&lt;P&gt;For the Service Bus emulator, management operations using the Service Bus Administration Client are natively supported in .NET. Language‑specific reference &lt;A class="lia-external-url" href="https://github.com/Azure/azure-service-bus-emulator-installer?tab=readme-ov-file#code-samples" target="_blank"&gt;samples &lt;/A&gt;are available to help you get started.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Getting started&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/overview-emulator" target="_blank"&gt;Azure Service Bus emulator&lt;/A&gt; is available as a &lt;A class="lia-external-url" href="https://mcr.microsoft.com/en-us/artifact/mar/azure-messaging/servicebus-emulator/tags" target="_blank"&gt;Docker image&lt;/A&gt; and runs on Windows, macOS, and Linux. You can interact with the emulator using the latest Service Bus client SDKs for messaging operations, and use the Service Bus Administration Client to manage entities locally during development and testing.&lt;/P&gt;
&lt;P&gt;To explore administration scenarios, including creating and deleting queues or topics, refer to the Service Bus emulator &lt;A class="lia-external-url" href="https://github.com/Azure/azure-service-bus-emulator-installer/tree/main/Sample-Code-Snippets" target="_blank"&gt;reference samples.&amp;nbsp;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;For more details about the emulator and supported features, visit aka.ms/servicebusemulator&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Share your feedback&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;We appreciate your feedback as we continue to improve the Service Bus emulator. Please share issues, suggestions, or feature requests through the GitHub &lt;A class="lia-external-url" href="https://github.com/Azure/azure-service-bus-emulator-installer" target="_blank"&gt;repository&lt;/A&gt; to help us refine the local development experience.&lt;/P&gt;
&lt;P&gt;Happy building—and may all your local tests pass! 😊&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Jan 2026 17:36:47 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/introducing-administration-client-support-for-the-azure-service/ba-p/4486433</guid>
      <dc:creator>Sannidhya_Glodha</dc:creator>
      <dc:date>2026-01-16T17:36:47Z</dc:date>
    </item>
    <item>
      <title>Announcing General Availability of Geo-Replication for Azure Service Bus Premium</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-general-availability-of-geo-replication-for-azure/ba-p/4413164</link>
      <description>&lt;P&gt;Today we are excited to announce general availability of the Geo-Replication feature for Azure Service Bus in the premium tier. This feature ensures that the metadata and data of a namespace are continuously replicated from a primary region to a secondary region. Moreover, this feature allows promoting a secondary region at any time. The Geo-Replication feature is the latest option to&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/service-bus-messaging/service-bus-outages-disasters" target="_blank" rel="noopener" data-linktype="relative-path"&gt;insulate Azure Service Bus applications against outages and disasters&lt;/A&gt;. Other options are Geo-Disaster Recovery and Availability Zones.&lt;/P&gt;
&lt;H2&gt;Differentiation&lt;/H2&gt;
&lt;P&gt;There are currently two features that provide Geo-Disaster Recovery in Azure Service Bus for the Premium tier. First, there is Geo-Disaster Recovery (Metadata DR) that just provides replication of metadata. Second, Geo-Replication, which is now GA, provides replication of both metadata and data. Neither Geo-Disaster Recovery feature should be confused with Availability Zones. Regardless of if it is Metadata DR or Geo replication, both geographic recovery features provide resilience between Azure regions such as East US and West US.&lt;/P&gt;
&lt;P&gt;Availability Zones are available on all Service Bus tiers, and support provides resilience within a specific geographic region, such as East US. For a detailed discussion of disaster recovery in Microsoft Azure, see &lt;A href="https://learn.microsoft.com/azure/well-architected/reliability/disaster-recovery" target="_blank" rel="noopener"&gt;this article&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Concepts&lt;/H2&gt;
&lt;P&gt;The Geo-Replication feature implements metadata and data replication in a primary-secondary replication model. It works with a single namespace, and at a given time there’s only one primary region, which is serving both producers and consumers. There is a single hostname used to connect to the namespace, which always points to the current primary region. After promoting a secondary region, the hostname points to the new primary region, and the old primary region is demoted to secondary region. After the new secondary has been re-initialized, it is possible to promote this region again to primary at any moment.&lt;/P&gt;
&lt;H2&gt;Replication modes&lt;/H2&gt;
&lt;P&gt;There are two replication modes, synchronous and asynchronous. It's important to know the differences between the two modes.&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;Asynchronous replication&lt;/H3&gt;
&lt;P&gt;Using asynchronous replication, all requests are committed on the primary, after which an acknowledgment is sent to the client. Replication to the secondary regions happens asynchronously. Users can configure the maximum acceptable amount of lag time, the offset between the latest action on the primary and the secondary regions. If the lag for an active secondary grows beyond user configuration, the primary will throttle incoming requests.&lt;/P&gt;
&lt;H3&gt;Synchronous replication&lt;/H3&gt;
&lt;P&gt;Using synchronous replication, all requests are replicated to the secondary, which must commit and confirm the operation before committing on the primary. As such, your application publishes at the rate it takes to publish, replicate, acknowledge, and commit. Moreover, it also means that your application is tied to the availability of both regions. If the secondary region goes down, messages aren't acknowledged and committed, and the primary will throttle incoming requests.&lt;/P&gt;
&lt;H2&gt;Promotion&lt;/H2&gt;
&lt;P&gt;The customer is in&amp;nbsp;control of promoting a secondary region, providing full ownership and visibility for outage resolution.&amp;nbsp;When choosing&amp;nbsp;&lt;EM&gt;Planned&lt;/EM&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;promotion, the service waits to catch up the replication lag before initiating the promotion. On the other hand, when choosing&amp;nbsp;&lt;EM&gt;Forced&lt;/EM&gt;&amp;nbsp;promotion, the service immediately initiates the promotion.&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Pricing&lt;/H2&gt;
&lt;P&gt;The Premium tier for Service Bus is priced per&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/service-bus-messaging/service-bus-premium-messaging#how-many-messaging-units-are-needed" target="_blank" rel="noopener"&gt;Messaging Unit&lt;/A&gt;. With the Geo-Replication feature, secondary regions run on the same number of MUs as the primary region, and the pricing is calculated over the total number of MUs. Additionally, there is a charge for based on the published bandwidth times the number of secondary regions.&lt;/P&gt;
&lt;P&gt;More information on this feature can be found in the &lt;A href="https://learn.microsoft.com/azure/service-bus-messaging/service-bus-geo-replication" target="_blank" rel="noopener"&gt;documentation&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Dec 2025 17:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-general-availability-of-geo-replication-for-azure/ba-p/4413164</guid>
      <dc:creator>EldertGrootenboer</dc:creator>
      <dc:date>2025-12-17T17:00:00Z</dc:date>
    </item>
    <item>
      <title>JSON Structure: A JSON schema language you'll love</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/json-structure-a-json-schema-language-you-ll-love/ba-p/4476852</link>
      <description>&lt;P&gt;We talk to many customers moving structured data through queues and event streams and topics, and we see a strong desire to create more efficient and less brittle communication paths governed by rich data definitions well understood by all parties. The way those definitions are often shared are schema documents. While there is great need, the available schema options and related tool chains are often not great.&lt;/P&gt;
&lt;P&gt;JSON Schema is popular for its relative simplicity in trivial cases, but quickly becomes unmanageable as users employ more complex constructs. The industry has largely settled on "Draft 7," with subsequent releases seeing weak adoption. There's substantial frustration among developers who try to use JSON Schema for code generation or database mapping—scenarios it was never designed for. JSON Schema is a powerful document validation tool, but it is not a data definition language. We believe it's effectively un-toolable for anything beyond pure validation; practically all available code-generation tools agree by failing at various degrees of complexity.&lt;/P&gt;
&lt;P&gt;Avro and Protobuf schemas are better for code generation, but tightly coupled to their respective serialization frameworks. For our own work in Microsoft Fabric, we're initially leaning on an Avro-compatible schema with a small set of modifications, but we ultimately need a richer type definition language that ideally builds on people's familiarity with JSON Schema.&lt;/P&gt;
&lt;P&gt;This isn't just a Microsoft problem. It's an industry-wide gap. That's why we've submitted &lt;A href="https://json-structure.org" target="_blank" rel="noopener"&gt;JSON Structure&lt;/A&gt; as a set of Internet Drafts to the IETF, aiming for formal standardization as an RFC. We want a vendor-neutral, standards-track schema language that the entire industry can adopt.&lt;/P&gt;
&lt;H2&gt;What Is JSON Structure?&lt;/H2&gt;
&lt;P&gt;JSON Structure is a modern, strictly typed data definition language that describes JSON-encoded data such that mapping to and from programming languages and databases becomes straightforward. It looks familiar—if you've written &lt;CODE&gt;"type": "object", "properties": {...}&lt;/CODE&gt; before, you'll feel right at home. But there's a key difference: JSON Structure is designed for code generation and data interchange first, with validation as an optional layer rather than the core concern.&lt;/P&gt;
&lt;P&gt;This means you get:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Precise numeric types&lt;/STRONG&gt;: &lt;CODE&gt;int32&lt;/CODE&gt;, &lt;CODE&gt;int64&lt;/CODE&gt;, &lt;CODE&gt;decimal&lt;/CODE&gt; with precision and scale, &lt;CODE&gt;float&lt;/CODE&gt;, &lt;CODE&gt;double&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Rich date/time support&lt;/STRONG&gt;: &lt;CODE&gt;date&lt;/CODE&gt;, &lt;CODE&gt;time&lt;/CODE&gt;, &lt;CODE&gt;datetime&lt;/CODE&gt;, &lt;CODE&gt;duration&lt;/CODE&gt;—all with clear semantics&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Extended compound types&lt;/STRONG&gt;: Beyond objects and arrays, you get &lt;CODE&gt;set&lt;/CODE&gt;, &lt;CODE&gt;map&lt;/CODE&gt;, &lt;CODE&gt;tuple&lt;/CODE&gt;, and &lt;CODE&gt;choice&lt;/CODE&gt; (discriminated unions)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Namespaces and modular imports&lt;/STRONG&gt;: Organize your schemas like code&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Currency and unit annotations&lt;/STRONG&gt;: Mark a &lt;CODE&gt;decimal&lt;/CODE&gt; as USD or a &lt;CODE&gt;double&lt;/CODE&gt; as kilograms&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Here's a compact example that showcases these features. We start with the schema header and the object definition:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
    "$schema": "https://json-structure.org/meta/extended/v0/#",
    "$id": "https://example.com/schemas/OrderEvent.json",
    "name": "OrderEvent",
    "type": "object",
    "properties": {&lt;/LI-CODE&gt;
&lt;P&gt;Objects require a &lt;CODE&gt;name&lt;/CODE&gt; for clean code generation. The &lt;CODE&gt;$schema&lt;/CODE&gt; points to the JSON Structure meta-schema, and the &lt;CODE&gt;$id&lt;/CODE&gt; provides a unique identifier for the schema itself.&lt;/P&gt;
&lt;P&gt;Now let's define the first few properties—identifiers and a timestamp:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;        "orderId": { "type": "uuid" },
        "customerId": { "type": "uuid" },
        "timestamp": { "type": "datetime" },&lt;/LI-CODE&gt;
&lt;P&gt;The native &lt;CODE&gt;uuid&lt;/CODE&gt; type maps directly to &lt;CODE&gt;Guid&lt;/CODE&gt; in .NET, &lt;CODE&gt;UUID&lt;/CODE&gt; in Java, and &lt;CODE&gt;uuid&lt;/CODE&gt; in Python. The &lt;CODE&gt;datetime&lt;/CODE&gt; type uses RFC3339 encoding and becomes &lt;CODE&gt;DateTimeOffset&lt;/CODE&gt; in .NET, &lt;CODE&gt;datetime&lt;/CODE&gt; in Python, or &lt;CODE&gt;Date&lt;/CODE&gt; in JavaScript. No format strings, no guessing.&lt;/P&gt;
&lt;P&gt;Next comes the order status, modeled as a discriminated union:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;        "status": { 
            "type": "choice",
            "choices": {
                "pending": { "type": "null" },
                "shipped": { 
                    "type": "object", 
                    "name": "ShippedInfo",
                    "properties": {
                        "carrier": { "type": "string" },
                        "trackingId": { "type": "string" }
                    }
                },
                "delivered": { 
                    "type": "object",
                    "name": "DeliveredInfo", 
                    "properties": { 
                        "signedBy": { "type": "string" } 
                    }
                }
            }
        },&lt;/LI-CODE&gt;
&lt;P&gt;The &lt;CODE&gt;choice&lt;/CODE&gt; type is a discriminated union with typed payloads per case. Each variant can carry its own structured data—&lt;CODE&gt;shipped&lt;/CODE&gt; includes carrier and tracking information, &lt;CODE&gt;delivered&lt;/CODE&gt; captures who signed for the package, and &lt;CODE&gt;pending&lt;/CODE&gt; carries no payload at all. This maps to enums with associated values in Swift, sealed classes in Kotlin, or tagged unions in Rust.&lt;/P&gt;
&lt;P&gt;For monetary values, we use precise decimals:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;        "total": { "type": "decimal", "precision": 12, "scale": 2 },
        "currency": { "type": "string", "maxLength": 3 },&lt;/LI-CODE&gt;
&lt;P&gt;The &lt;CODE&gt;decimal&lt;/CODE&gt; type with explicit precision and scale ensures exact monetary math—no floating-point surprises. A precision of 12 with scale 2 gives you up to 10 digits before the decimal point and exactly 2 after.&lt;/P&gt;
&lt;P&gt;Line items use an array of tuples for compact, positional data:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;        "items": {
            "type": "array",
            "items": {
                "type": "tuple",
                "properties": {
                    "sku": { "type": "string" },
                    "quantity": { "type": "int32" },
                    "unitPrice": { "type": "decimal", "precision": 10, "scale": 2 }
                },
                "tuple": ["sku", "quantity", "unitPrice"],
                "required": ["sku", "quantity", "unitPrice"]
            }
        },&lt;/LI-CODE&gt;
&lt;P&gt;Tuples are fixed-length typed sequences—ideal for time-series data or line items where position matters. The &lt;CODE&gt;tuple&lt;/CODE&gt; array specifies the exact order: SKU at position 0, quantity at 1, unit price at 2. The &lt;CODE&gt;int32&lt;/CODE&gt; type maps to &lt;CODE&gt;int&lt;/CODE&gt; in all mainstream languages.&lt;/P&gt;
&lt;P&gt;Finally, we add extensible metadata using set and map types:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;        "tags": { "type": "set", "items": { "type": "string" } },
        "metadata": { "type": "map", "values": { "type": "string" } }
    },
    "required": ["orderId", "customerId", "timestamp", "status", "total", "currency", "items"]
}&lt;/LI-CODE&gt;
&lt;P&gt;The &lt;CODE&gt;set&lt;/CODE&gt; type represents unordered, unique elements—perfect for tags. The &lt;CODE&gt;map&lt;/CODE&gt; type provides string keys with typed values, ideal for extensible key-value metadata without polluting the main schema.&lt;/P&gt;
&lt;P&gt;Here's what a valid instance of this schema looks like:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
    "orderId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "customerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "timestamp": "2025-01-15T14:30:00Z",
    "status": { "shipped": { "carrier": "Litware", "trackingId": "794644790323" } },
    "total": "129.97",
    "currency": "USD",
    "items": [
        ["SKU-1234", 2, "49.99"],
        ["SKU-5678", 1, "29.99"]
    ],
    "tags": ["priority", "gift-wrap"],
    "metadata": { "source": "web", "campaign": "summer-sale" }
}&lt;/LI-CODE&gt;
&lt;P&gt;Notice how the &lt;CODE&gt;choice&lt;/CODE&gt; is encoded as an object with a single key indicating the active case—&lt;CODE&gt;{"shipped": {...}}&lt;/CODE&gt;—making it easy to parse and route. Tuples serialize as JSON arrays in the declared order. Decimals are encoded as strings to preserve precision across all platforms.&lt;/P&gt;
&lt;H2&gt;Why Does This Matter for Messaging?&lt;/H2&gt;
&lt;P&gt;When you're pushing events through Service Bus, Event Hubs, or Event Grid, schema clarity is everything. Your producers and consumers often live in different codebases, different languages, different teams. A schema that generates clean C# classes, clean Python dataclasses, and clean TypeScript interfaces—from the same source—is not a luxury. It's a requirement.&lt;/P&gt;
&lt;P&gt;JSON Structure's type system was designed with this polyglot reality in mind. The extended primitive types map directly to what languages actually have. A &lt;CODE&gt;datetime&lt;/CODE&gt; is a &lt;CODE&gt;DateTimeOffset&lt;/CODE&gt; in .NET, a &lt;CODE&gt;datetime&lt;/CODE&gt; in Python, a &lt;CODE&gt;Date&lt;/CODE&gt; in JavaScript. No more guessing whether that "string with format date-time" will parse correctly on the other side.&lt;/P&gt;
&lt;H2&gt;SDKs Available Now&lt;/H2&gt;
&lt;P&gt;We've built SDKs for the languages you're using today: &lt;A href="https://json-structure.org/sdks/typescript" target="_blank" rel="noopener"&gt;TypeScript&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/python" target="_blank" rel="noopener"&gt;Python&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/dotnet" target="_blank" rel="noopener"&gt;.NET&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/java" target="_blank" rel="noopener"&gt;Java&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/go" target="_blank" rel="noopener"&gt;Go&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/rust" target="_blank" rel="noopener"&gt;Rust&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/ruby" target="_blank" rel="noopener"&gt;Ruby&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/perl" target="_blank" rel="noopener"&gt;Perl&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/php" target="_blank" rel="noopener"&gt;PHP&lt;/A&gt;, &lt;A href="https://json-structure.org/sdks/swift" target="_blank" rel="noopener"&gt;Swift&lt;/A&gt;, and &lt;A href="https://json-structure.org/sdks/c" target="_blank" rel="noopener"&gt;C&lt;/A&gt;. All SDKs validate both schemas and instances against schemas. A &lt;A href="https://marketplace.visualstudio.com/items?itemName=json-structure.json-structure-sdk" target="_blank" rel="noopener"&gt;VS Code extension&lt;/A&gt; provides IntelliSense and inline diagnostics.&lt;/P&gt;
&lt;H3&gt;Code and Schema Generation with Structurize&lt;/H3&gt;
&lt;P&gt;Beyond validation, you often need to generate code or database schemas from your type definitions. The &lt;A href="https://clemensv.github.io/avrotize/" target="_blank" rel="noopener"&gt;Structurize&lt;/A&gt; tool converts JSON Structure schemas into SQL DDL for various database dialects, as well as self-serializing classes for multiple programming languages. It can also convert between JSON Structure and other schema formats like Avro, Protobuf, and JSON Schema.&lt;/P&gt;
&lt;P&gt;Here's a simple example: a postal address schema on the left, and the SQL Server table definition generated by running &lt;CODE&gt;structurize struct2sql postaladdress.json --dialect sqlserver&lt;/CODE&gt; on the right:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table style="width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class="lia-border-style-solid" style="border-width: 1px; padding: 8px;"&gt;JSON Structure Schema&lt;/th&gt;&lt;th class="lia-border-style-solid" style="border-width: 1px; padding: 8px;"&gt;Generated SQL Server DDL&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 8px;"&gt;&lt;LI-CODE lang="json"&gt;{
  "$schema": "https://json-structure.org/meta/extended/v0/#",
  "$id": "https://example.com/schemas/PostalAddress.json",
  "name": "PostalAddress",
  "description": "A postal address for shipping or billing",
  "type": "object",
  "properties": {
    "id": { 
      "type": "uuid",
      "description": "Unique identifier for the address"
    },
    "street": { 
      "type": "string", 
      "description": "Street address with house number"
    },
    "city": { 
      "type": "string", 
      "description": "City or municipality"
    },
    "state": { 
      "type": "string", 
      "description": "State, province, or region"
    },
    "postalCode": { 
      "type": "string", 
      "description": "ZIP or postal code"
    },
    "country": { 
      "type": "string", 
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "createdAt": {
      "type": "datetime",
      "description": "When the address was created"
    }
  },
  "required": ["id", "street", "city", "postalCode", "country"]
}&lt;/LI-CODE&gt;&lt;/td&gt;&lt;td class="lia-vertical-align-top lia-border-style-solid" style="border-width: 1px; padding: 8px;"&gt;&lt;LI-CODE lang="sql"&gt;CREATE TABLE [PostalAddress] (
    [id] UNIQUEIDENTIFIER,
    [street] NVARCHAR(200),
    [city] NVARCHAR(100),
    [state] NVARCHAR(50),
    [postalCode] NVARCHAR(20),
    [country] NVARCHAR(2),
    [createdAt] DATETIME2,
    PRIMARY KEY ([id], [street], [city], 
                 [postalCode], [country])
);

EXEC sp_addextendedproperty 
  'MS_Description', 
  'A postal address for shipping or billing', 
  'SCHEMA', 'dbo', 
  'TABLE', 'PostalAddress';

EXEC sp_addextendedproperty 
  'MS_Description', 
  'Unique identifier for the address', 
  'SCHEMA', 'dbo', 
  'TABLE', 'PostalAddress', 
  'COLUMN', 'id';

EXEC sp_addextendedproperty 
  'MS_Description', 
  'Street address with house number', 
  'SCHEMA', 'dbo', 
  'TABLE', 'PostalAddress', 
  'COLUMN', 'street';

-- ... additional column descriptions&lt;/LI-CODE&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;The &lt;CODE&gt;uuid&lt;/CODE&gt; type maps to &lt;CODE&gt;UNIQUEIDENTIFIER&lt;/CODE&gt;, &lt;CODE&gt;datetime&lt;/CODE&gt; becomes &lt;CODE&gt;DATETIME2&lt;/CODE&gt;, and the schema's &lt;CODE&gt;description&lt;/CODE&gt; fields are preserved as SQL Server extended properties. The tool supports PostgreSQL, MySQL, SQLite, and other dialects as well.&lt;/P&gt;
&lt;P&gt;Mind that all this code is provided "as-is" and is in a "draft" state just like the specification set.&amp;nbsp; Feel encouraged to provide feedback and ideas in the GitHub repos for the specifications and SDKs at &lt;A class="lia-external-url" href="https://github.com/json-structure/" target="_blank" rel="noopener"&gt;https://github.com/json-structure/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Learn More&lt;/H2&gt;
&lt;P&gt;We've submitted JSON Structure as a set of Internet Drafts to the IETF, aiming for formal standardization as an RFC. This is an industry-wide issue, and we believe the solution needs to be a vendor-neutral standard. You can track the drafts at the &lt;A href="https://datatracker.ietf.org/doc/search?name=draft-vasters-json-structure&amp;amp;rfcs=on&amp;amp;activedrafts=on&amp;amp;olddrafts=on" target="_blank" rel="noopener"&gt;IETF Datatracker&lt;/A&gt;.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Main site&lt;/STRONG&gt;: &lt;A href="https://json-structure.org" target="_blank" rel="noopener"&gt;json-structure.org&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Primer&lt;/STRONG&gt;: &lt;A href="https://json-structure.org/json-structure-primer.html" target="_blank" rel="noopener"&gt;JSON Structure Primer&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Core specification&lt;/STRONG&gt;: &lt;A href="https://json-structure.github.io/core" target="_blank" rel="noopener"&gt;JSON Structure Core&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Extensions&lt;/STRONG&gt;: &lt;A href="https://json-structure.github.io/import" target="_blank" rel="noopener"&gt;Import&lt;/A&gt; | &lt;A href="https://json-structure.github.io/validation" target="_blank" rel="noopener"&gt;Validation&lt;/A&gt; | &lt;A href="https://json-structure.github.io/alternate-names" target="_blank" rel="noopener"&gt;Alternate Names&lt;/A&gt; | &lt;A href="https://json-structure.github.io/units" target="_blank" rel="noopener"&gt;Units&lt;/A&gt; | &lt;A href="https://json-structure.github.io/conditional-composition" target="_blank" rel="noopener"&gt;Composition&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;IETF Drafts&lt;/STRONG&gt;: &lt;A href="https://datatracker.ietf.org/doc/search?name=draft-vasters-json-structure&amp;amp;rfcs=on&amp;amp;activedrafts=on&amp;amp;olddrafts=on" target="_blank" rel="noopener"&gt;IETF Datatracker&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;GitHub&lt;/STRONG&gt;: &lt;A href="https://github.com/json-structure" target="_blank" rel="noopener"&gt;github.com/json-structure&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 17 Dec 2025 08:03:09 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/json-structure-a-json-schema-language-you-ll-love/ba-p/4476852</guid>
      <dc:creator>clemensv</dc:creator>
      <dc:date>2025-12-17T08:03:09Z</dc:date>
    </item>
    <item>
      <title>Message brokers as the cornerstone of the next generation of agentic AI backends</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/message-brokers-as-the-cornerstone-of-the-next-generation-of/ba-p/4478088</link>
      <description>&lt;P&gt;We are seeing changes in the way Agentic AI behaves. Instead of one-off model calls, we are starting to see networks of agents and MCP services working together. These are going to bring powerful integrations, with a variety of distributed components. Work is going to arrive in unpredictable bursts. Some services end up overloaded while others sit idle. Every call burns tokens and compute, so wasted effort translates directly into real money.&lt;/P&gt;
&lt;P&gt;Direct calls are no longer enough. We are going to need orchestration. A broker in the middle that absorbs spikes, queues up work until capacity becomes available, and handles retries. This approach helps keep costs predictable by pacing work to match budgets and downstream capacity.&lt;/P&gt;
&lt;P&gt;Message brokers, such as &lt;A href="https://learn.microsoft.com/azure/service-bus-messaging/service-bus-messaging-overview" target="_blank" rel="noopener"&gt;Azure Service Bus&lt;/A&gt;, are ideal for the capabilities needed in this future. Queues and topics ensure that messages stay available. Sessions maintain order across related work. Dead letter queues isolate failures without impacting the rest of the workload. Scheduled delivery and deferral allow retries and resequencing without custom logic. Message TTL ensures stale work is removed in time. Duplicate detection enforces idempotency. These capabilities are not optional. They are essential for building systems at the scale we are going to need.&lt;/P&gt;
&lt;H1&gt;Why agentic AI backends need enterprise messaging&lt;/H1&gt;
&lt;P&gt;Agentic systems are evolving into ecosystems of cooperating components. Agents fanning hundreds or thousands of tasks out, aggregating results that arrive at different times, and going through multiple refinements before reaching their final answers. Backends are not all available at once. Some become unresponsive. Others throttle. Yet the system still needs to make progress.&lt;/P&gt;
&lt;P&gt;For example, imagine a travel booking agent. A user would inform the agent where they want to go, how they want to travel, and at what type of properties they want to stay. The agent would then send out a variety of tasks to various backend services to get this information. Some services might provide information about different flight options, others about hotels or other options for stays, etc.&lt;/P&gt;
&lt;P&gt;The agent would gather all the information, follow up with more tasks as needed, for example to confirm availability, or to gather more specific requirements from the customer’s input. Services may respond out of order, as some may be slower than others, or may respond with substandard quality responses.&lt;/P&gt;
&lt;P&gt;Enterprise messaging provides the backbone that makes this possible. Queues and topics absorb bursts, preserve intent when services are offline, and regulate how fast work reaches downstream components. Routing decisions are based on workflow state, not on connectivity. Workers process at the rate they can sustain.&lt;/P&gt;
&lt;P&gt;Scale matters, but so does cost. Unnecessary retries and unneeded calls quickly start adding up. Messaging reduces this waste by enabling scheduled retries, deferred steps, batching, and prioritization. The result is predictable systems and fewer wasted tokens.&lt;/P&gt;
&lt;H2&gt;A callback to the past&lt;/H2&gt;
&lt;P&gt;We have seen this pattern before. When applications needed to integrate multiple systems, enterprise messaging and service-oriented architecture helped manage complexity and orchestrate processes. The principle remains the same: decoupling and reliable communication are how we keep complex systems from breaking under their own weight. The difference now is that agentic AI workloads are more dynamic, more granular, and more expensive when they go wrong.&lt;/P&gt;
&lt;H1&gt;Why Azure Service Bus stands out&lt;/H1&gt;
&lt;P&gt;Not every messaging option meets these demands. Streaming brokers excel at event ingestion and analytics. Basic queues handle simple point-to-point flows. However, neither delivers the &lt;A href="https://learn.microsoft.com/azure/service-bus-messaging/advanced-features-overview" target="_blank" rel="noopener"&gt;enterprise messaging features&lt;/A&gt; that agentic systems require; ordered delivery, correlation, controlled retries, and clear failure isolation.&lt;/P&gt;
&lt;P&gt;After all, agentic systems are unpredictable by design. Steps complete out of order. Latency varies. Results arrive when they can. Azure Service Bus provides capabilities that that are quite uniquely suited for turning this type of disorder into a manageable workflow.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Sessions for correlation and ordered processing.&lt;/LI&gt;
&lt;LI&gt;Dead-letter queues for isolating failures.&lt;/LI&gt;
&lt;LI&gt;Scheduled delivery and deferral for controlled retries.&lt;/LI&gt;
&lt;LI&gt;TTL for time-sensitive operations.&lt;/LI&gt;
&lt;LI&gt;Duplicate detection for idempotency.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;These are the foundational building blocks needed for reliable agentic backends at massive scale.&lt;/P&gt;
&lt;H1&gt;Patterns for the future&lt;/H1&gt;
&lt;P&gt;As these systems grow, a few patterns are going to become critical.&lt;/P&gt;
&lt;H2&gt;Scatter / Gather&lt;/H2&gt;
&lt;P&gt;Agents will distribute work across many backend workers and then combine the results. Topics fan out these tasks. Sessions make sure that related messages are kept together. Additionally, dead letter queues can isolate failures without blocking progress for the rest of the workload.&lt;/P&gt;
&lt;H2&gt;Request / Proposal / Refinement&lt;/H2&gt;
&lt;P&gt;Agentic AI does their work through iteration. An agent proposes an action, receives partial responses, and refines until the result meets a threshold. Deferral and scheduled delivery control timing for the corresponding messages. TTL makes sure messages for stale proposals are removed when they are no longer needed. Finally, duplicate detection keeps retries safe by ensuring that duplication is detected before they are sent out to the backend systems.&lt;/P&gt;
&lt;H2&gt;Saga-like coordination&lt;/H2&gt;
&lt;P&gt;Multi-step workflows require ordered execution and detailed progress tracking. Sessions enforce sequential processing. Session state can be used to record what is done and what remains. Furthermore, dead letter queues capture failures for targeted repair while other workflows continue.&lt;/P&gt;
&lt;H2&gt;Backpressure and load shaping&lt;/H2&gt;
&lt;P&gt;Loads can spike, especially with agentic AI. Components can fall behind. This is where queues come in, to buffer the work. Scheduled delivery and concurrency control smooth arrival to the backend workers. Lock renewal protects long-running tasks. The goal is to ensure steady latency and prevent cascading failures.&lt;/P&gt;
&lt;H1&gt;Closing thoughts&lt;/H1&gt;
&lt;P&gt;Agentic AI does not behave uniformly. Workloads spike. Steps finish at different times. Availability depends on demand. Designing for this reality is essential if we want systems that scale and deliver consistent results.&lt;/P&gt;
&lt;P&gt;Messaging provides the stability these architectures need. Azure Service Bus brings the capabilities that make orchestration practical and repeatable at the scale that is going to be needed. With the right patterns in place, irregular and asynchronous interactions become workflows that can be managed and controlled.&lt;/P&gt;
&lt;P&gt;Messaging is not just a transport decision; it is a design principle for the next generation of agentic AI backends!&lt;/P&gt;</description>
      <pubDate>Mon, 15 Dec 2025 19:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/message-brokers-as-the-cornerstone-of-the-next-generation-of/ba-p/4478088</guid>
      <dc:creator>EldertGrootenboer</dc:creator>
      <dc:date>2025-12-15T19:00:00Z</dc:date>
    </item>
    <item>
      <title>General Availability: Large Message Support in Azure Event Hubs</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/general-availability-large-message-support-in-azure-event-hubs/ba-p/4471094</link>
      <description>&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about" target="_blank"&gt;Azure Event Hubs &lt;/A&gt;is a cloud-native service that streams millions of events per second with minimal latency, fully compatible with Apache Kafka and requiring no code changes for existing Kafka workloads.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Today, we are excited to announce the general availability of Large Message Support in Azure Event Hubs, enabling you to send and receive messages up to &lt;STRONG&gt;20 MB&lt;/STRONG&gt; in self-serve scalable Dedicated clusters, with enhanced reliability for seamless handling of large messages and greater flexibility for your data streaming solutions.&lt;/P&gt;
&lt;P&gt;This feature enables fast and reliable processing of larger, indivisible events. Large Message Support works with both AMQP and Apache Kafka protocols, allowing you to send bigger payloads as usual without changing your client code. It is advisable to check your client settings to ensure that timeouts and maximum message size limits are not set too low on the client side.&lt;/P&gt;
&lt;P&gt;To enable Large Message Support, simply configure your eligible event hubs dedicated clusters using the Azure Portal. For further details and eligibility, please visit aka.ms/largemessagesupportforeh.&lt;/P&gt;
&lt;P&gt;Your feedback is invaluable to us, and we look forward to hearing about your experiences.&lt;/P&gt;
&lt;P&gt;Read more:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-hubs/azure-event-hubs-apache-kafka-overview" target="_blank"&gt;Azure Event Hubs for Apache Kafka - Azure Event Hubs | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-quickstart-stream-large-messages" target="_blank"&gt;Quickstart: Send and Receive Large Messages with Azure Event Hubs (Preview) - Azure Event Hubs | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Nov 2025 19:05:31 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/general-availability-large-message-support-in-azure-event-hubs/ba-p/4471094</guid>
      <dc:creator>Sannidhya_Glodha</dc:creator>
      <dc:date>2025-11-18T19:05:31Z</dc:date>
    </item>
    <item>
      <title>Upcoming Changes to Azure Relay IP Addresses and DNS Support</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/upcoming-changes-to-azure-relay-ip-addresses-and-dns-support/ba-p/4463597</link>
      <description>&lt;P&gt;Azure Relay is an integral part of modern hybrid cloud architectures, enabling seamless connectivity between on-premises and cloud resources. To ensure continued reliability and security, Microsoft is implementing important updates to the IP addresses and DNS naming conventions used by Azure Relay services.&lt;/P&gt;
&lt;H3&gt;What’s Changing?&lt;/H3&gt;
&lt;P&gt;As detailed in the changes to &lt;A href="https://techcommunity.microsoft.com/blog/messagingonazureblog/upcoming-changes-to-ip-addresses-for-azure-relay/3285254" data-lia-auto-title="IP-addresses for Azure Relay" data-lia-auto-title-active="0" target="_blank"&gt;IP-addresses for Azure Relay&lt;/A&gt;&amp;nbsp;and &lt;A href="https://techcommunity.microsoft.com/blog/messagingonazureblog/azure-relay-wcf-and-hybrid-connections-dns-support/370775" data-lia-auto-title=" Azure Relay WCF and Hybrid Connections DNS Support " data-lia-auto-title-active="0" target="_blank"&gt;Azure Relay WCF and Hybrid Connections DNS Support &lt;/A&gt;reference blogs, customers should be aware of two primary changes:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;IP and Name Transitions&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;The IP addresses and corresponding DNS names for Azure Relay endpoints will change during the transition period.&lt;/LI&gt;
&lt;LI&gt;For example, g0-prod-bn-vaz0001-sb.servicebus.windows.net can change to gv0-prod-bn-vaz0001-sb.servicebus.windows.net&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;DNS Support Enhancements&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;Improved DNS support will enhance reliability and future-proof connectivity for both WCF Relay and Hybrid Connections users.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;Recommended Actions for Customers&lt;/H3&gt;
&lt;P&gt;To minimize disruption, it is crucial for users to update their network configurations and firewall rules to accommodate these new IP addresses and DNS names as soon as possible. These will be made available using the below PS1 script -&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Update Allow Lists:&lt;/STRONG&gt; Ensure that your firewalls and network security groups permit traffic to the new IP ranges and DNS endpoints as specified in the official documentation.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Monitor Transition Phases:&lt;/STRONG&gt; Be prepared for two rounds of changes. Apply updates promptly during both the initial and final transitions.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Automating Namespace Information Retrieval&lt;/H3&gt;
&lt;P&gt;To assist with this transition, Microsoft has updated the PowerShell script for retrieving namespace information, which now reflects the planned changes. You can access the latest script here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/Azure/azure-relay-dotnet/blob/dev/tools/GetNamespaceInfo.ps1" target="_blank"&gt;GetNamespaceInfo.ps1 (azure-relay-dotnet/tools)&lt;/A&gt; (Instructions on how to use the ps1 script is available in the &lt;A href="https://github.com/Azure/azure-relay-dotnet/blob/dev/tools/Readme.md" target="_blank"&gt;README&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;This script allows you to efficiently check the current configuration of your Azure Relay namespaces and validate connectivity against the updated endpoints.&lt;/P&gt;
&lt;H3&gt;Sample output&lt;/H3&gt;
&lt;LI-CODE lang="shell"&gt;
PS D:\AzureVMSSEssentials\Tools\GetNamespaceInfoWithIpRanges&amp;gt; .\GetNamespaceInfo.ps1 &amp;lt;your-relay-namespace&amp;gt;.servicebus.windows.net
  
Namespace        : &amp;lt;your-relay-namespace&amp;gt;.servicebus.windows.net
Deployment       : PROD-BN-VAZ0001
ClusterDNS       : ns-prod-bn-vaz0001.eastus2.cloudapp.azure.com
ClusterRegion    : eastus2
ClusterVIP       : 40.84.75.3
GatewayDnsFormat : g{0}-bn-vaz0001-sb.servicebus.windows.net or gv{0}-bn-vaz0001-sb.servicebus.windows.net
Notes            : Entries with 'FUTURE' IPAddress may be added at a later time as needed
 Current IP Ranges
Name                                              IPAddress
----                                              ---------
g0-bn-vaz0001-sb.servicebus.windows.net   20.36.144.8
g1-bn-vaz0001-sb.servicebus.windows.net   20.36.144.1
g2-bn-vaz0001-sb.servicebus.windows.net   20.36.144.2
g3-bn-vaz0001-sb.servicebus.windows.net   20.36.144.11
g4-bn-vaz0001-sb.servicebus.windows.net   20.36.144.3
g5-bn-vaz0001-sb.servicebus.windows.net   FUTURE
g6-bn-vaz0001-sb.servicebus.windows.net   FUTURE
...
g98-bn-vaz0001-sb.servicebus.windows.net FUTURE
g99-bn-vaz0001-sb.servicebus.windows.net FUTURE

Future IP Ranges for Region:eastus2
addressPrefixes
---------------
135.18.130.0/23
135.18.132.0/26
135.18.132.64/27

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Oct 2025 20:06:09 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/upcoming-changes-to-azure-relay-ip-addresses-and-dns-support/ba-p/4463597</guid>
      <dc:creator>ashish-chhabria</dc:creator>
      <dc:date>2025-10-22T20:06:09Z</dc:date>
    </item>
    <item>
      <title>What’s New in Azure Event Grid</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/what-s-new-in-azure-event-grid/ba-p/4458299</link>
      <description>&lt;P&gt;Azure Event Grid continues to evolve with new capabilities in General Availability and Public Preview – intended to help you enhance performance, security, and interoperability in modern event-driven systems. These enhancements strengthen Azure Event Grid’s foundational messaging layer for distributed systems—supporting real-time telemetry, automation, and hybrid workloads.&lt;/P&gt;
&lt;P&gt;With support for advanced MQTT features and flexible authentication models, Event Grid now offers:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Stronger security posture&lt;/STRONG&gt; through OAuth 2.0 and Custom Webhook authentication&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Operational efficiency&lt;/STRONG&gt; with static client identifiers and message retention&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Broader integration&lt;/STRONG&gt; across devices, applications, and cloud services&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;H2&gt;General Availability Features&lt;/H2&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/oauth-json-web-token-authentication" target="_blank" rel="noopener"&gt;MQTT OAuth 2.0 Authentication&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Authenticate MQTT clients using JSON Web Tokens (JWTs) issued by any OpenID Connect (OIDC)-compliant identity provider. This enables seamless integration with Microsoft Entra ID (formerly Azure AD), custom identity platforms, or third-party IAM solutions.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/authenticate-with-namespaces-using-webhook-authentication" target="_blank" rel="noopener"&gt;MQTT Custom Webhook Authentication&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Use external webhooks or Azure Functions to dynamically validate client connections. Authorize using shared access signatures (SAS), API keys, custom credentials, or X.509 certificate fingerprints. This is a powerful feature for scenarios requiring granular control across large, dynamic fleets of devices or multitenant environments.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-support#assigned-client-identifiers-preview" target="_blank" rel="noopener"&gt;MQTT Assigned Client Identifiers&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Assign deterministic, pre-approved client identifiers to MQTT clients. This enables enhanced session continuity, better device tracking, simplified diagnostics, and improved auditability—critical for managing long-lived connections and operational visibility in regulated industries. Assign deterministic, pre-approved client identifiers to MQTT clients. This enables enhanced session continuity, better device tracking, simplified diagnostics, and improved auditability—critical for managing long-lived connections and operational visibility in regulated industries.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-events-fabric" target="_blank" rel="noopener"&gt;First Class integration with Fabric&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Route MQTT messages and Cloud Events from Event Grid Namespace to Fabric Event Streams for real-time analytics, storage, visualization of IoT data without having to hop thru Event Hub.&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Public Preview Features&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-http-publish" target="_blank"&gt;HTTP Publish&lt;/A&gt;&lt;/STRONG&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Bridge traditional HTTP-based applications into event-driven ecosystems by allowing HTTP clients to publish messages directly to Event Grid topics. This enables RESTful services, legacy systems, and webhooks to participate in real-time event workflows, complementing MQTT and cloud-native integrations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-retain" target="_blank"&gt;MQTT Retain Support&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Support for retained MQTT messages allows clients to receive the latest value on a topic immediately upon subscription—without waiting for the next publish. This is particularly useful in IoT telemetry scenarios, stateful dashboards, and device shadow synchronization. Retained messages are stored per topic with configurable expiry and can be cleared on demand.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 class="lia-align-center"&gt;Unlocking Smart Factory Insights with Sparkplug B on Azure Event Grid MQTT Broker&lt;/H2&gt;
&lt;P&gt;In the age of Industry 4.0, factories are becoming smarter, more connected, and increasingly data driven. A key enabler of this transformation is &lt;STRONG&gt;Sparkplug B&lt;/STRONG&gt;, an MQTT-based protocol purpose-built for industrial IoT (IIoT). And now, with &lt;STRONG&gt;Azure Event Grid MQTT Broker&lt;/STRONG&gt;, Sparkplug B comes to life in the cloud—securely, reliably, and at scale.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;What is Sparkplug B?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Think of Sparkplug B as the &lt;STRONG&gt;common language&lt;/STRONG&gt; for industrial devices. It defines how sensors, gateways, and SCADA systems talk to each other—sharing not just telemetry data (like temperature or RPM) but also device lifecycle information such as &lt;STRONG&gt;when a machine comes online (BIRTH)&lt;/STRONG&gt; or &lt;STRONG&gt;goes offline (DEATH)&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;Why it Matters for Manufacturers&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Real-time factory monitoring&lt;/STRONG&gt; – View live machine vitals across distributed plants.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Predictive maintenance&lt;/STRONG&gt; – Anticipate failures by analyzing trends.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Seamless SCADA integration&lt;/STRONG&gt; – Auto-discover tags in systems like Ignition SCADA with Cirrus Link.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Edge-to-cloud bridge&lt;/STRONG&gt; – Bring legacy factory systems into Azure for analytics, AI, and automation.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/sparkplug-support" target="_blank"&gt;Azure Event Grid MQTT Broker + Sparkplug B&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;With Azure Event Grid MQTT Broker, manufacturers can run Sparkplug B workloads with enterprise-grade reliability. A connected factory floor where insights flow seamlessly from edge devices to cloud-unlocking efficiency, uptime, and innovation using the following capabilities:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;QoS 1 for reliability&lt;/STRONG&gt; (at-least-once delivery).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Last Will &amp;amp; Testament (LWT)&lt;/STRONG&gt; for real-time device state awareness.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Retained messages&lt;/STRONG&gt; to ensure new subscribers always see the last known good value.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Native support for binary Sparkplug payloads&lt;/STRONG&gt; over secure TLS.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;From Factory Floor to Cloud Insights&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Sensors&lt;/STRONG&gt; measure machine temperature and RPM.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Edge gateways&lt;/STRONG&gt; publish Sparkplug B messages to Azure Event Grid MQTT Broker.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Ignition SCADA&lt;/STRONG&gt; with Chariot Cirrus Link auto-discovers and displays these tags.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Data Explorer or Fabric&lt;/STRONG&gt; ingests the same data for real-time dashboards, predictive analytics, or automated alerts.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;Ready to Get Started?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-overview" target="_blank" rel="noopener"&gt;Learn more about Azure Event Grid MQTT Broker&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/sparkplug-support" target="_blank" rel="noopener"&gt;Sparkplug B Support&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 01 Oct 2025 23:22:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/what-s-new-in-azure-event-grid/ba-p/4458299</guid>
      <dc:creator>Connected-Seth</dc:creator>
      <dc:date>2025-10-01T23:22:50Z</dc:date>
    </item>
    <item>
      <title>Geo-Replication is Here! Now generally available for Event Hubs Premium &amp; Dedicated</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/geo-replication-is-here-now-generally-available-for-event-hubs/ba-p/4433976</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Today, we are thrilled to announce the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;General Availability&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;of the &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Geo-replication &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;feature&lt;/STRONG&gt; for &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Azure Event Hubs&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, now available in both &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Premium &lt;/STRONG&gt;and &lt;STRONG&gt;Dedicated &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;tiers. This milestone marks a significant enhancement in our service, providing our customers with robust business continuity and disaster recovery capabilities – ensuring high availability for their mission-critical applications.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The Geo-replication feature allows you to &lt;STRONG&gt;replicate your Event Hubs data across multiple regions either synchronously or asynchronously&lt;/STRONG&gt;, ensuring that your data remains accessible in the event of maintenance activities, regional degradation, or a regional outage. With Geo-replication, you can seamlessly promote a secondary region to a primary, minimizing downtime and ensuring business continuity.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 100%; height: 539.938px; border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr style="height: 31px;"&gt;&lt;td style="height: 31px;"&gt;
&lt;P&gt;&lt;STRONG class="lia-align-center"&gt;&lt;SPAN data-contrast="auto"&gt;Before failover (promotion of secondary to primary)&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td style="height: 31px;"&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;After failover (promotion of secondary to primary)&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 508.938px;"&gt;&lt;td style="height: 508.938px;"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td style="height: 508.938px;"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With general availability, we are excited to announce that the Geo-replication feature now &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;supports all the features&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; that are generally available in the service today. This includes &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;private networking&lt;/STRONG&gt;, &lt;STRONG&gt;customer-managed key encryption, Event Hubs Capture&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, and many more. These enhancements ensure that you can leverage the full capabilities of Event Hubs while benefiting from the added reliability of Geo-replication.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We have also increased visibility into the health and metrics of your replicas. This means you can now monitor the status of your replicas more effectively and know exactly when it is appropriate to promote your secondary to primary. This added visibility ensures that you can make informed decisions and maintain the high availability of your applications.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Since the &lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/blog/messagingonazureblog/announcing-public-preview-for-geo-replication-for-azure-event-hubs-dedicated/4164522" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;announcement of&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt; public preview&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;, we’ve had several customers try out the Geo-replication feature and appreciate the enhanced reliability and peace of mind that comes with having a robust disaster recovery solution in place.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;Learn more&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Learn more about &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/event-hubs/geo-replication" target="_blank" rel="noopener"&gt;geo-replication concepts and the pricing model&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt; and try out this quickstart to learn&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/event-hubs/use-geo-replication" target="_blank" rel="noopener"&gt;how to setup geo-replication&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt; for your premium and dedicated tier namespaces.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We encourage our customers to try out the Geo-replication feature and experience the benefits of turnkey business continuity and disaster recovery features firsthand. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Your feedback is invaluable to us, and we look forward to hearing about your experiences.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Jul 2025 18:48:55 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/geo-replication-is-here-now-generally-available-for-event-hubs/ba-p/4433976</guid>
      <dc:creator>ashish-chhabria</dc:creator>
      <dc:date>2025-07-17T18:48:55Z</dc:date>
    </item>
    <item>
      <title>Announcing new features and updates in Azure Event Grid</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-new-features-and-updates-in-azure-event-grid/ba-p/4414748</link>
      <description>&lt;P&gt;Discover powerful new features in Azure Event Grid, enhancing its functionality and user experience. This fully managed event broker now supports multi-protocol interoperability, including MQTT, for scalable messaging. It seamlessly connects Microsoft-native and third-party services, enabling robust event-driven applications. Streamline event management with flexible push-pull communication patterns.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are thrilled to announce General Availability of the &lt;A href="https://aka.ms/event-grid-cross-tenant-delivery" target="_blank" rel="noopener"&gt;Cross-tenant delivery&lt;/A&gt; to Event Hubs, Service Bus, Storage Queues, and dead letter storage using managed identity with federated identity credentials (FIC) from Azure Event Grid topics, domains, system topics, and partner topics. New cross-tenant scenarios, currently in Public Preview enable delivery to Event Hubs, webhooks, and dead letter storage in Azure Event Grid namespaces. This includes system topics, partner topics, and domains, offering seamless integration. The update enhances flexibility for event-driven applications across tenants. &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Azure Event Grid now also offers managed identity support for webhook delivery for all their resources. Public Preview features for new cross-tenant scenarios and managed identity support for webhook delivery are currently available in West Central, West Europe, UK South, Central US, and more regions will be supported soon.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are also introducing the Public Preview for the support of &lt;A href="https://aka.ms/event-grid-nsp" target="_blank" rel="noopener"&gt;Network Security Perimeter (NSP) in Azure Event Grid topics and domains&lt;/A&gt;, for inbound and outbound communication. This perimeter defines a boundary with implicit trust access between each resource, where you can have sets of inbound and outbound access rules. By incorporating these advanced security measures, Azure Event Grid enhances the defense against a wide range of cyber threats, helping organizations to safeguard their event-driven workloads.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In addition to this, Azure Event Grid has introduced &lt;A href="https://aka.ms/EventGrid-MQTT-MessageOrdering" target="_blank" rel="noopener"&gt;message ordering&lt;/A&gt; support within single MQTT client sessions, ensuring reliable sequential event delivery, and a &lt;A href="https://aka.ms/EventGrid-MQTT-ConnectRateLimits" target="_blank" rel="noopener"&gt;connection rate limit&lt;/A&gt; of one attempt per second per session, which maintains system stability. Furthermore, the expansion to support up to &lt;A href="https://aka.ms/EventGrid-MQTT-TopicSegmentExpansion" target="_blank" rel="noopener"&gt;15 MQTT topic segments per topic&lt;/A&gt; or filter offers greater flexibility in topic hierarchies. High throughput messaging, supporting up to &lt;A href="https://aka.ms/EventGrid-MQTT-HighThroughputMessaging" target="_blank" rel="noopener"&gt;1,000 messages per second per session&lt;/A&gt;, is now in Public Preview, making it ideal for demanding scenarios such as IoT telemetry and real-time analytics.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Azure Event Grid now also offers &lt;A href="https://aka.ms/EventGrid-MQTT-OAuth2.0JWTAuthentication" target="_blank" rel="noopener"&gt;OAuth 2.0 JWT authentication&lt;/A&gt; for MQTT clients in Public Preview. This feature enables secure client authentication via JSON Web Tokens (JWT) issued by OpenID Connect (OIDC) compliant providers, providing a lightweight, secure, and flexible authentication option for clients not provisioned in Azure.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additionally, &lt;A href="https://aka.ms/EventGrid-MQTT-CustomWebhookAuthentication" target="_blank" rel="noopener"&gt;Custom Webhook Authentication&lt;/A&gt; has been introduced, allowing dynamic client authentication through webhooks or Azure Functions, with Entra ID JWT validation for centralized and customizable strategies.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Finally, &lt;A href="https://aka.ms/EventGrid-MQTT-AssignedClientIdentifiers" target="_blank" rel="noopener"&gt;Assigned Client Identifiers&lt;/A&gt; in Public Preview provide consistent client IDs, improving session management and operational control, further enhancing the scalability and flexibility of client authentication workflows.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We believe these updates will greatly enhance your Azure Event Grid experience. We welcome your feedback and appreciate your ongoing partnership as we work to deliver top features and services.&lt;/P&gt;</description>
      <pubDate>Mon, 19 May 2025 17:17:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-new-features-and-updates-in-azure-event-grid/ba-p/4414748</guid>
      <dc:creator>robece</dc:creator>
      <dc:date>2025-05-19T17:17:50Z</dc:date>
    </item>
    <item>
      <title>Announcing the General Availability of Event Hubs Data Explorer</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-the-general-availability-of-event-hubs-data-explorer/ba-p/4304502</link>
      <description>&lt;P&gt;We are excited to announce the general availability of the &lt;STRONG&gt;Event Hubs Data Explorer&lt;/STRONG&gt;&amp;nbsp;in the Azure portal!&lt;/P&gt;
&lt;P&gt;Ever since our &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/messagingonazureblog/announcing-the-event-hubs-data-explorer-a-handy-tool-for-getting-started-and-deb/4235950" target="_blank" rel="noopener" data-lia-auto-title="preview announcement in September" data-lia-auto-title-active="0"&gt;preview announcement in September&lt;/A&gt;, we've heard customers rave about how the Event Hubs Data Explorer has already made its way into their daily workflows to onboard, debug and review the data in their Event Hubs with very little effort.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Customer-Centric Design&lt;/H3&gt;
&lt;P&gt;We listened to your feedback and designed the Event Hubs Data Explorer to address your needs. We've had a lot of customers try this tool and share feedback on how its saving them significant time and effort when it comes to viewing their Event Hubs in action and performing basic debugging tasks.&lt;/P&gt;
&lt;H3&gt;Simplified Onboarding and Debugging&lt;/H3&gt;
&lt;P&gt;The Event Hubs Data Explorer is perfect for both new and experienced users. It provides a comprehensive view of event data, making it easy to test event producers and consumers. You can quickly validate your setup with custom workloads or predefined datasets, ensuring everything is configured correctly.&lt;/P&gt;
&lt;P&gt;Debugging is now more straightforward than ever. With the ability to inspect data at specific timestamps or offsets, you can quickly identify and resolve issues, optimizing your event processing workflows.&lt;/P&gt;
&lt;H3&gt;Getting Started&lt;/H3&gt;
&lt;P&gt;To start using the Event Hubs Data Explorer, navigate to your Event Hubs namespace in the Azure portal. From there, you can access the Data Explorer and begin sending and viewing events with just a few clicks. You can also check out the documentation &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/event-hubs/event-hubs-data-explorer" target="_blank"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;We are excited to see how you leverage the Event Hubs Data Explorer to drive innovation and efficiency in your projects. Your feedback has been instrumental in shaping this tool, and we look forward to continuing to improve our offerings based on your insights.&lt;/P&gt;</description>
      <pubDate>Wed, 04 Dec 2024 19:14:54 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-the-general-availability-of-event-hubs-data-explorer/ba-p/4304502</guid>
      <dc:creator>ashish-chhabria</dc:creator>
      <dc:date>2024-12-04T19:14:54Z</dc:date>
    </item>
    <item>
      <title>Introducing Kafka Support in Event Hubs emulator</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/introducing-kafka-support-in-event-hubs-emulator/ba-p/4304469</link>
      <description>&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-hubs/" target="_blank" rel="noopener"&gt;Azure Event Hubs&lt;/A&gt; is a cloud-native data streaming service that streams millions of events per second with low latency, from any source to any destination. Compatible with Apache Kafka®, it allows you to run existing Kafka workloads without code changes.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Earlier this year, we released the &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-hubs/overview-emulator" target="_blank" rel="noopener"&gt;Event Hubs emulator&lt;/A&gt; for local development, which initially only supported AMQP protocol. We are now excited to announce Apache Kafka® protocol support in the Event Hubs emulator.&lt;/P&gt;
&lt;H3&gt;Why emulator?&lt;/H3&gt;
&lt;P&gt;Developers across the globe love emulators!&amp;nbsp; While there are numerous compelling reasons to use emulators, here are just a few of those reasons to consider:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Optimized Development Loop:&lt;/STRONG&gt; The emulator speeds up dev/testing against Azure Event Hubs.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="font-style: var(--lia-blog-font-style); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;Pre-migration Trial&lt;/STRONG&gt;&lt;SPAN style="font-style: var(--lia-blog-font-style); font-weight: var(--lia-blog-font-weight); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;: Try Azure Event Hubs for Apache Kafka® using your existing Kafka applications before migrating to the cloud.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="font-style: var(--lia-blog-font-style); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;Isolated Environment&lt;/STRONG&gt;&lt;SPAN style="font-style: var(--lia-blog-font-style); font-weight: var(--lia-blog-font-weight); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;: Use the emulator for dev/test setup without network latency or cloud resource constraints.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="font-style: var(--lia-blog-font-style); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;Cost-efficient&lt;/STRONG&gt;&lt;SPAN style="font-style: var(--lia-blog-font-style); font-weight: var(--lia-blog-font-weight); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;: The emulator is free and can be run on your local machine for dev/testing.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H6&gt;Note: The emulator is intended only for development and testing. It should not be used for production workloads. Official support is not provided, and any issues or suggestions should be reported via GitHub.&lt;/H6&gt;
&lt;H3&gt;Kickstart development with Event Hubs emulator&lt;/H3&gt;
&lt;P&gt;The emulator is available as a Docker image on &lt;A class="lia-external-url" href="https://mcr.microsoft.com/en-us/artifact/mar/azure-messaging/eventhubs-emulator/about" target="_blank" rel="noopener"&gt;Microsoft Artifact Registry&lt;/A&gt;&amp;nbsp; and is platform-agnostic – it can run on Windows, macOS, and Linux. You can either use our automated scripts from the &lt;A class="lia-external-url" href="https://github.com/Azure/azure-event-hubs-emulator-installer/tree/main/EventHub-Emulator/Scripts" target="_blank" rel="noopener"&gt;Installer repository&lt;/A&gt; or spin up the emulator container using the &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-hubs/test-locally-with-event-hub-emulator?tabs=docker-linux-container" target="_blank" rel="noopener"&gt;docker compose&lt;/A&gt; command.&lt;/P&gt;
&lt;P&gt;The producer and consumer APIs are currently compatible with the emulator. Additional API support will be provided in future incremental versions.&lt;/P&gt;
&lt;P&gt;To test Apache Kafka® applications locally with the Event Hubs emulator, visit aka.ms/devtestwithehemulator.&lt;/P&gt;
&lt;P&gt;Learn more about Event Hubs:&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about" target="_blank" rel="noopener"&gt;Azure Event Hubs: Data streaming platform with Kafka support - Azure Event Hubs | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-hubs/azure-event-hubs-kafka-overview" target="_blank" rel="noopener"&gt;Introduction to Apache Kafka® in Event Hubs on Azure Cloud - Azure Event Hubs | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We appreciate your feedback and encourage you to share it with us. Please provide feedback or report any issues at our GitHub repository: &lt;A href="https://github.com/Azure/azure-event-hubs-emulator-installer/issues" target="_blank" rel="noopener"&gt;Issues · Azure/azure-event-hubs-emulator-installer&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;May the Event Hubs emulator light up your test cases in green! 😊&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Nov 2024 18:16:51 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/introducing-kafka-support-in-event-hubs-emulator/ba-p/4304469</guid>
      <dc:creator>Sannidhya_Glodha</dc:creator>
      <dc:date>2024-11-19T18:16:51Z</dc:date>
    </item>
    <item>
      <title>Introducing Local emulator for Azure Service Bus</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/introducing-local-emulator-for-azure-service-bus/ba-p/4304457</link>
      <description>&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview" target="_blank" rel="noopener"&gt;Azure Service Bus&lt;/A&gt; is a fully managed enterprise message broker offering queues and publish-subscribe topics. It decouples applications and services, providing benefits like load-balancing across workers, safe data and control routing, and reliable transactional coordination.&lt;/P&gt;
&lt;P&gt;In response to your feedback, we are pleased to announce the introduction of a&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/overview-emulator" target="_blank" rel="noopener"&gt; local emulator&lt;/A&gt; for Azure Service Bus. This emulator is intended to facilitate local development experience for Service Bus, allowing developers to develop and test their code against Azure Service Bus, in isolation away from cloud interference.&lt;/P&gt;
&lt;H3&gt;Why emulator?&lt;/H3&gt;
&lt;P&gt;Developers across the globe love emulators!&amp;nbsp; While there are numerous compelling reasons to use emulators, here are just a few of those reasons to consider:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Optimized development loop:&lt;/STRONG&gt; The emulator speeds up dev/testing against Azure Service Bus.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="font-style: var(--lia-blog-font-style); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;Pre-migration trial:&lt;/STRONG&gt;&lt;SPAN style="font-style: var(--lia-blog-font-style); font-weight: var(--lia-blog-font-weight); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt; Try Azure Service Bus using your existing AMQP applications before migrating to the cloud.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="font-style: var(--lia-blog-font-style); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;Isolated environment&lt;/STRONG&gt;&lt;SPAN style="font-style: var(--lia-blog-font-style); font-weight: var(--lia-blog-font-weight); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;: Use the emulator for dev/test setup without network latency or cloud resource constraints.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="font-style: var(--lia-blog-font-style); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;Cost-efficient&lt;/STRONG&gt;&lt;SPAN style="font-style: var(--lia-blog-font-style); font-weight: var(--lia-blog-font-weight); font-family: var(--lia-blog-font-family); background-color: var(--lia-rte-bg-color); color: var(--lia-bs-body-color); font-size: var(--lia-bs-font-size-base);"&gt;: The emulator is free and can be run on your local machine for dev/test scenarios.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H6&gt;Note: The emulator is intended only for development and testing. It should not be used for production workloads. Official support is not provided, and any issues or suggestions should be reported via &lt;A href="https://github.com/Azure/azure-service-bus-emulator-installer" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/H6&gt;
&lt;H3&gt;Get started with Service Bus emulator&lt;/H3&gt;
&lt;P&gt;The emulator is accessible as a Docker image on &lt;A class="lia-external-url" href="https://mcr.microsoft.com/en-us/artifact/mar/azure-messaging/servicebus-emulator/about" target="_blank" rel="noopener"&gt;Microsoft Artifact Registry&lt;/A&gt;, and it is platform-independent, capable of running on Windows, macOS, and Linux. You can use our automated scripts from the&amp;nbsp;&lt;A class="lia-external-url" href="https://github.com/Azure/azure-service-bus-emulator-installer" target="_blank" rel="noopener"&gt;Installer repository&lt;/A&gt; or initiate the emulator container using the &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/test-locally-with-service-bus-emulator" target="_blank" rel="noopener"&gt;docker compose&lt;/A&gt; command.&lt;/P&gt;
&lt;P&gt;The emulator is compatible with the latest service bus client SDKs and supports a wide variety of features within Azure Service Bus. For more details, please visit aka.ms/servicebusemulator&lt;/P&gt;
&lt;P&gt;Read more about Azure Service Bus:&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview" target="_blank" rel="noopener"&gt;Introduction to Azure Service Bus, an enterprise message broker - Azure Service Bus | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;We appreciate your feedback and encourage you to share it with us. Please provide feedback or report any issues on our GitHub &lt;A class="lia-external-url" href="https://github.com/Azure/azure-service-bus-emulator-installer" target="_blank" rel="noopener"&gt;repository&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Wishing you a smooth ride with the Service Bus emulator, making all your tests pass! 😊&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Nov 2024 18:15:40 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/introducing-local-emulator-for-azure-service-bus/ba-p/4304457</guid>
      <dc:creator>Sannidhya_Glodha</dc:creator>
      <dc:date>2024-11-19T18:15:40Z</dc:date>
    </item>
    <item>
      <title>Announcing new features and updates in Azure Event Grid</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-new-features-and-updates-in-azure-event-grid/ba-p/4304487</link>
      <description>&lt;P&gt;&lt;SPAN style="font-style: var(--lia-blog-font-style); font-family: var(--lia-blog-font-family); font-size: var(--lia-bs-font-size-base); -webkit-text-size-adjust: 100%;"&gt;We are excited to share several new updates and features in Azure Event Grid that enhance our service's capabilities and improve your experience. In this article, you will find more information about the General Availability of Webhook Endpoints, and custom domain names in Azure Event Grid, as well as the introduction of new Public Previews like the cross-tenant delivery, and namespace topic to namespace topic forwarding support. Azure Event Grid is a highly integrated event broker designed to simplify the development of event-driven applications. It features pub-sub scenarios with a rich variety of event sources and handlers, including first-party and third-party integrations. Its flexible design supports multi-protocol interoperability, push and pull delivery, as well as MQTT, allowing for diverse message consumption patterns.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below, we detail the latest additions and improvements now available.&lt;/P&gt;
&lt;P&gt;We are pleased to announce General Availability of the &lt;A href="https://aka.ms/egns-webhook" target="_blank" rel="noopener"&gt;webhook endpoints in Azure Event Grid namespace topics&lt;/A&gt;. This feature allows for efficient and reliable push delivery to webhooks, expanding the possibilities for event-driven architectures and integrations.&lt;/P&gt;
&lt;P&gt;We are also excited to announce that &lt;A href="https://aka.ms/eg-customdomains" target="_blank" rel="noopener"&gt;custom domain names support&lt;/A&gt; is now Generally Available in Azure Event Grid’s MQTT broker. This new feature allows you to assign your own domain names to the MQTT and HTTP endpoints within your Azure Event Grid namespaces. By doing so, you can enhance security and simplify client configuration. Additionally, assigning custom domain names to namespaces can help improve availability, manage capacity, and facilitate cross-region client mobility.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are also excited to announce the General Availability of &lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/partner-events-graph-api" target="_blank" rel="noopener"&gt;Microsoft Graph API events&lt;/A&gt; that provide notifications about state changes of resources in Microsoft Outlook, Teams, SharePoint, Microsoft Entra ID, Microsoft Conversations, and security alerts.&lt;/P&gt;
&lt;P&gt;In Public Preview, we are introducing support for &lt;A href="https://aka.ms/event-grid-cross-tenant-delivery" target="_blank" rel="noopener"&gt;cross-tenant delivery&lt;/A&gt; to Event Hubs, Service Bus, and Storage Queues using managed identity with federated identity credentials (FIC) in Azure Event Grid topics, domains, system topics and partner topics. This enhancement enables secure and efficient cross-tenant communication for basic resources.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Lastly, we are launching the Public Preview for &lt;A href="https://aka.ms/event-grid-nstopic-to-nstopic" target="_blank" rel="noopener"&gt;namespace topic to namespace topic forwarding&lt;/A&gt;, enabling seamless event forwarding between topics hosted in the same or different namespaces, simplifying the event routing and management.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are confident that these updates will provide significant benefits and improvements to your Azure Event Grid experience. We look forward to your feedback and continued partnership as we strive to deliver the best possible features and services.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Nov 2024 14:45:30 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-new-features-and-updates-in-azure-event-grid/ba-p/4304487</guid>
      <dc:creator>robece</dc:creator>
      <dc:date>2024-11-19T14:45:30Z</dc:date>
    </item>
    <item>
      <title>Bridging Connectivity: Exploring Azure Relay Bridge (azbridge)</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/bridging-connectivity-exploring-azure-relay-bridge-azbridge/ba-p/4294267</link>
      <description>&lt;H1&gt;Introduction to Secure Remote Access with Azure Relay and Azbridge&lt;/H1&gt;
&lt;P&gt;In modern IT environments, securely accessing on-premises resources from remote locations is a common challenge. Traditional methods, such as setting up VPNs, often require complex configurations and can introduce significant overhead. For organizations seeking a more streamlined solution, &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-relay/" target="_blank" rel="noopener"&gt;Azure Relay&lt;/A&gt;, combined with the open-source tool &lt;A class="lia-external-url" href="https://github.com/Azure/azure-relay-bridge/tree/master" target="_blank" rel="noopener"&gt;Azure Relay Bridge&lt;/A&gt; (azbridge), offers an efficient way to establish secure, direct connections without the need for VPNs.&lt;/P&gt;
&lt;P&gt;Azbridge leverages Azure Relay to create TCP, UDP, HTTP, and Unix Socket tunnels, enabling secure traversal through NATs and firewalls using only outbound HTTPS (443) connectivity. This makes it ideal for connecting remote clients to on-premises resources, such as Remote Desktop Protocol (RDP) sessions, without exposing them to the public internet.&lt;/P&gt;
&lt;P&gt;While Azure Relay is fully supported by Microsoft, it’s important to note that azbridge is an open-source tool and is not covered by Microsoft support. Users can seek assistance for Azure Relay, but azbridge-specific issues should be reported directly on its repository, where response times may vary.&lt;/P&gt;
&lt;P&gt;In this guide, we’ll walk through the setup process for using azbridge with Azure Relay to create an RDP connection. You’ll learn how to configure a Hybrid Connection in Azure, customize client and server configuration files, and run azbridge as a service across different operating systems.&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Example Use Case for AZBridge&lt;/H1&gt;
&lt;P&gt;Azbridge enables secure Remote Desktop Protocol (RDP) connections by allowing users to expose a network-isolated socket that can be accessed from an entirely separate network. This approach provides secure, remote access to on-premises resources—such as RDP, databases, or web servers—without the complexity of setting up a VPN, making it ideal for users needing isolated, controlled access across network boundaries. Using Azure Relay, azbridge creates direct tunnels that bypass NATs and firewalls without requiring extensive network configuration. This setup not only simplifies access but also enhances security by enabling RDP connections without exposing sessions to the public internet, thereby reducing potential risks.&lt;/P&gt;
&lt;P&gt;In many situations, users need access to specific resource endpoints rather than an entire network. Azbridge is especially valuable in scenarios such as accessing billing databases in franchise locations, integrating with secure test systems, or making web service calls to protected applications. By leveraging Azure Relay, azbridge provides a controlled way to reach exactly the endpoint you need without exposing the entire network that it is in.&lt;/P&gt;
&lt;P&gt;Additionally, azbridge is a cost-effective solution, avoiding traditional VPN licensing fees and charging only for active Azure Relay connections. Because it relies on outbound HTTPS (443), azbridge works seamlessly across restrictive networks, allowing connections without additional firewall adjustments. For developers and IT admins, azbridge provides quick, secure access to on-premises machines from any location, serving as a fast, flexible alternative to traditional VPNs for endpoint-specific connectivity.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;The diagram above demonstrates how azbridge enables a secure Remote Desktop Protocol (RDP) connection across network boundaries using Azure Relay. In this setup, On-Premises Network A contains the client machine, where azbridge (labeled as "Relay Bridge") is installed. This client is seeking to establish an RDP connection to a remote machine located in a different network, On-Premises Network B.&lt;/P&gt;
&lt;P&gt;Azure Relay acts as a secure intermediary between the two networks, facilitating the connection without exposing either network to the public internet. By creating a direct tunnel that bypasses NATs and firewalls, Azure Relay allows the client in Network A to communicate with the endpoint in Network B safely. On-Premises Network B contains the target machine with azbridge installed, which is also labeled as "Relay Bridge." This machine hosts the specific endpoint (such as an RDP server) that the client in Network A is trying to access.&lt;/P&gt;
&lt;P&gt;Through this configuration, azbridge in Network A connects via Azure Relay to reach the endpoint in Network B without requiring a VPN. Only the designated RDP endpoint is exposed to the connection, while the rest of Network B remains isolated and secure. This approach provides a secure, controlled RDP connection across networks, allowing remote access to on-premises resources without exposing the entire network.&lt;/P&gt;
&lt;H1&gt;Prerequisites and Initial Setup&lt;/H1&gt;
&lt;P&gt;To get started, you will first need to set up an Azure Relay &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-relay/relay-what-is-it#hybrid-connections" target="_blank" rel="noopener"&gt;Hybrid Connection&lt;/A&gt; the basic instructions for doing so are provided below. Presuming you have already gained the Entra id login credentials for Azure, set up some environment variables in your environment:&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;export NAMESPACE=&amp;lt;your_namespace_name&amp;gt;   # e.g., mynamespacename
export LOCATION=&amp;lt;location_name&amp;gt;          # e.g., eastus2
export RELAYNAME=&amp;lt;your_relay_name&amp;gt;       # e.g., azbridge	&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next, use the specified namespace and location to create a resource group:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;az group create --name $NAMESPACE --location $LOCATION&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In your resource group, create an azure relay namespace for this example the resource group and the azure relay namespace are identically named:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;az relay namespace create -g $NAMESPACE --name $NAMESPACE&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Create a new Hybrid Connection in your Azure Relay namespace:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;az relay hyco create -g $NAMESPACE --namespace-name $NAMESPACE --name $RELAYNAME&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Create an authorization rule with your Hybrid Connection, allow send and listen permissions on the authorization rule:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;az relay hyco authorization-rule create -g $NAMESPACE --namespace-name $NAMESPACE --hybrid-connection-name $RELAYNAME -n sendlisten --rights Send Listen&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Retrieve the primaryConnectionString for the authorization rule generated. This will be needed for the azbridge configuration files:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;az relay hyco authorization-rule keys list -g $NAMESPACE --namespace-name $NAMESPACE -n sendlisten --hybrid-connection-name $RELAYNAME --out tsv --query "primaryConnectionString"
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Setting Up RDP with Azure Relay and Azbridge&lt;/H1&gt;
&lt;P&gt;For this example, we’ll be using the Windows operating system. Install the MSI package on both your client machine and the remote RDP machine. You can download the MSI package for installation from&amp;nbsp;&lt;A class="lia-external-url" href="https://github.com/Azure/azure-relay-bridge/releases" target="_blank" rel="noopener"&gt;Azure Relay Bridge Releases on GitHub&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Client Machine Configuration&lt;/H2&gt;
&lt;P&gt;On the client machine, generate a client_config.yaml file with the following contents:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="yaml"&gt;LocalForward :
  - BindAddress: 127.1.0.2
    BindPort: 13389
    PortName: rdp
    RelayName: &amp;lt;&amp;lt;RELAYNAME&amp;gt;&amp;gt;
    ConnectionString: &amp;lt;&amp;lt;primaryConnectionString&amp;gt;&amp;gt;

LogLevel: INFO&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;Bind Address&lt;/STRONG&gt;: Source address of outbound, forwarding connections, in this example, 127.1.0.2 is used to create a local endpoint on the client machine without affecting 127.0.0.1&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;BindPort&lt;/STRONG&gt;: TCP port mapped to the hybrid connection 13389 is used in this case because Windows does not allow listening on port 3389 on any address.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PortName&lt;/STRONG&gt;: Primarily used for internal configuration within azbridge to label and map the local and remote ports consistently. This label helps identify the specific purpose of each connection.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;RelayName&lt;/STRONG&gt;: Hybrid Connection on Azure Relay that will be used for this connection&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ConnectionString&lt;/STRONG&gt;: primaryConnectionString created for the Azure Relay Hybrid Connection with Send and Listen permissions.&lt;/P&gt;
&lt;P&gt;To start the client connection, open up a command prompt and specify the client_config.yml file that was generated.&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;azbridge -f client_config.yml&lt;/LI-CODE&gt;
&lt;H2&gt;Remote RDP Machine Configuration&lt;/H2&gt;
&lt;P&gt;On the rdp machine, generate a server_config.yml file with the following contents:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="yaml"&gt;RemoteForward :
   - RelayName: &amp;lt;&amp;lt;RELAYNAME&amp;gt;&amp;gt;
     Host: localhost
     PortName: rdp
     HostPort: 3389
     ConnectionString: &amp;lt;&amp;lt;primaryConnectionString&amp;gt;&amp;gt;

LogLevel: INFO&lt;/LI-CODE&gt;
&lt;P&gt;Similar to the Client setup, only this file sets up a remote forwarder that binds the hybrid connection with logical port "rdp" to the Windows RDP endpoint on "localhost", port 3389.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To start the local RDP connection, open up a command prompt and specify the server_config.yml file that was generated.&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;azbridge -f server_config.yml&lt;/LI-CODE&gt;
&lt;H2&gt;Connect via RDP&lt;/H2&gt;
&lt;P&gt;On your client machine, open up a Remote Desktop Connection to your Remote RDP host. For this connection, you will use the 127.1.0.2:13389 specified in your client_config.yml:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;UL&gt;
&lt;LI style="list-style-type: none;"&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Nov 2024 21:57:53 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/bridging-connectivity-exploring-azure-relay-bridge-azbridge/ba-p/4294267</guid>
      <dc:creator>msft-samuel</dc:creator>
      <dc:date>2024-11-14T21:57:53Z</dc:date>
    </item>
    <item>
      <title>Announcing the Event Hubs Data Explorer: a handy tool for getting started and debugging</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-the-event-hubs-data-explorer-a-handy-tool-for-getting/ba-p/4235950</link>
      <description>&lt;P&gt;We are excited to announce the preview launch of the new&amp;nbsp;&lt;STRONG&gt;Event Hubs&lt;/STRONG&gt; &lt;STRONG&gt;Data Explorer&lt;/STRONG&gt; feature in the Azure portal! This user-friendly yet highly powerful tool allows developers to generate and retrieve event data from an Event Hubs topic, all within the ease of the Azure portal.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;Seamless Onboarding&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Data Explorer is a vital tool for new Event Hubs developers, offering an all-encompassing view of event data for quick onboarding. It lets you test event producers and consumers easily, ensuring your systems are correctly configured. Developers have the option to either create custom workloads or utilize predefined datasets to produce mock data for streamlined testing.&lt;/P&gt;
&lt;P&gt;Whether you're experimenting with new data flows or validating your setup, the Data Explorer makes the process straightforward.&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;Enhanced Debugging&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you're using Event Hubs, the Data Explorer is invaluable for debugging and improving your solutions. It allows you to inspect data at specific timestamps or offsets, helping developers quickly find and fix anomalies. This tool is great for identifying issues and optimizing event processing workflows to keep your systems running smoothly.&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;Your Gateway to Advanced Event Data Insights&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Event Hubs Data Explorer is designed to make your experience with Event Hubs more intuitive and productive. By providing a unified interface for producing and consuming event data, it empowers you to gain deeper insights and maintain control over your event-driven architectures. We are confident that this new feature will enhance your ability to work with Event Hubs, whether you are just getting started or optimizing existing deployments.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For a detailed guide on using the Event Hubs Data Explorer, please refer to our comprehensive how-to &lt;A href="https://learn.microsoft.com/azure/event-hubs/event-hubs-data-explorer" target="_blank" rel="noopener"&gt;documentation&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;We are excited to see how you leverage the Event Hubs Data Explorer to drive innovation and efficiency in your projects. As always, we welcome your feedback and look forward to continuously improving our tools to better serve your needs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Stay tuned for more updates and happy exploring!&lt;/P&gt;</description>
      <pubDate>Tue, 19 Nov 2024 14:46:24 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-the-event-hubs-data-explorer-a-handy-tool-for-getting/ba-p/4235950</guid>
      <dc:creator>ashish-chhabria</dc:creator>
      <dc:date>2024-11-19T14:46:24Z</dc:date>
    </item>
    <item>
      <title>Service Bus Premium SKU Performance Update</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/service-bus-premium-sku-performance-update/ba-p/4232600</link>
      <description>&lt;P&gt;In 2016 we &lt;A href="https://azure.microsoft.com/en-us/updates/service-bus-premium-messaging-released-to-general-availability/" target="_blank" rel="noopener"&gt;announced&lt;/A&gt; the general availability of Service Bus Premium, which offers dedicated resources and consistent performance for mission-critical workloads. At this point we also &lt;A href="https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/premium-messaging-how-fast-is-it/ba-p/370722" target="_blank" rel="noopener"&gt;published a blogpost&lt;/A&gt; that showed the results of the performance benchmarks we ran on this SKU.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since then, we have made a variety of improvements to Service Bus Premium, providing even better performance for our customers’ workloads. In this blogpost, we will revisit the performance benchmarks from 2016 and compare them with the current performance of Service Bus Premium in 2024.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Methodology&lt;/H2&gt;
&lt;P&gt;We ran this benchmark in the same configuration as for the previous blogpost. We used a performance benchmark tool, which can be found on &lt;A href="https://github.com/Azure-Samples/service-bus-dotnet-messaging-performance" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;. The benchmark tool was run on D48 VMs located in the same region as the namespace.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The benchmarks tested three scenarios: a single queue, a single topic with a single subscription, and a single topic with five subscriptions. The tests used 1, 2, and 4 messaging units (MU), which are the units of scale and performance in the premium SKU. Furthermore, the tests used 1 KB message size, the AMQP protocol, and implemented batching.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For each test we measured the average throughput (messages per second) for our send and receive operations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Results&lt;/H2&gt;
&lt;P&gt;Below are the results for the send and receive operations, and how these compare to those found in 2016. This indicates the number of messages that came through Service Bus per second, so higher numbers mean better performance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Send&lt;/H3&gt;
&lt;H3&gt;&lt;img /&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below are the numbers for each of these tests, and the improvement in percentages compared to the same tests in 2016.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="632.75px"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="114px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="44px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD colspan="4" width="164.75px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;# of MUs&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="3" width="309px" height="30px"&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;Improvement % from 2016 to 2024&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="114px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;Entity Type&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="46.5px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;Year&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;1MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;2MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;4MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="103px" height="30px" class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;1MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="103px" height="30px" class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;2MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="103px" height="30px" class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;4MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="114px" height="60px"&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Queue&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="46.5px" height="30px"&gt;
&lt;P&gt;2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54px" height="30px"&gt;
&lt;P&gt;4401&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;9070&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;16782&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;54%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;41%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;49%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="2" width="46.5px" height="30px"&gt;
&lt;P&gt;2024&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54px" height="30px"&gt;
&lt;P&gt;6790&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;12770&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;25000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="114px" height="60px"&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;1 Subscription &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="46.5px" height="30px"&gt;
&lt;P&gt;2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54px" height="30px"&gt;
&lt;P&gt;2223&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;4499&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;8960&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;125%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;129%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;47%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="2" width="46.5px" height="30px"&gt;
&lt;P&gt;2024&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54px" height="30px"&gt;
&lt;P&gt;5000&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;10300&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;13200&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="114px" height="60px"&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;5 Subscriptions&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="46.5px" height="30px"&gt;
&lt;P&gt;2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54px" height="30px"&gt;
&lt;P&gt;1348&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;1676&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;3844&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;19%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;85%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="103px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;14%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="2" width="46.5px" height="30px"&gt;
&lt;P&gt;2024&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54px" height="30px"&gt;
&lt;P&gt;1600&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;3100&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54.125px" height="30px"&gt;
&lt;P&gt;4400&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Receive&lt;/H3&gt;
&lt;DIV id="tinyMceEditorEldertGrootenboer_2" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below are the numbers for each of these tests, and the improvement in percentages compared to the same tests in 2016.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="641.1999969482422px"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="116px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="51px" height="30px"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD colspan="4" width="167.4px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;# of MUs&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="3" width="306px" height="30px"&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;Improvement % from 2016 to 2024&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="116px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;Entity Type&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="53.4px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;Year&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;1MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;2MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;&lt;STRONG&gt;4MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="102px" height="30px" class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;1MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="102px" height="30px" class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;2MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="102px" height="30px" class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;3MU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="116px" height="60px"&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Queue&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="53.4px" height="30px"&gt;
&lt;P&gt;2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;4401&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;9069&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;16782&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;54%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;41%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;49%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="2" width="53.4px" height="30px"&gt;
&lt;P&gt;2024&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;6790&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;12770&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;25000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="116px" height="60px"&gt;
&lt;P class="lia-align-left"&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;1 Subscription &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="53.4px" height="30px"&gt;
&lt;P&gt;2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;2220&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;4493&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;8956&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;125%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;129%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;47%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="2" width="53.4px" height="30px"&gt;
&lt;P&gt;2024&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;5000&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;10300&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;13200&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="116px" height="60px"&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;5 Subscriptions&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="2" width="53.4px" height="30px"&gt;
&lt;P&gt;2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;2994&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;8331&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;19202&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;167%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;84%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="102px" height="60px" class="lia-align-center"&gt;
&lt;P&gt;15%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="2" width="53.4px" height="30px"&gt;
&lt;P&gt;2024&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;8000&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;15300&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="55px" height="30px"&gt;
&lt;P&gt;22000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H1&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;These results show that there has been a significant performance improvement since we first introduced Service Bus Premium, with an average increase of ~50%, and even over 150% for some scenarios. Of course, we are going to continue improving our service, where performance is always on top of mind.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Sep 2024 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/service-bus-premium-sku-performance-update/ba-p/4232600</guid>
      <dc:creator>EldertGrootenboer</dc:creator>
      <dc:date>2024-09-03T16:00:00Z</dc:date>
    </item>
  </channel>
</rss>

