<?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>Sun, 07 Jun 2026 09:00:35 GMT</pubDate>
    <dc:creator>MessagingonAzureBlog</dc:creator>
    <dc:date>2026-06-07T09:00:35Z</dc:date>
    <item>
      <title>Azure Event Grid: Powering IoT and Event-Driven Applications at Scale</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/azure-event-grid-powering-iot-and-event-driven-applications-at/ba-p/4521403</link>
      <description>&lt;P data-start="655" data-end="1350"&gt;Modern IoT and event-driven applications demand more than reliable messaging. They require the ability to handle larger payloads, efficiently route data at scale, and automatically adapt to changing workloads. Today, we're excited to introduce a new set of capabilities in Azure Event Grid Namespace (MQTT Broker &amp;amp; Event Broker) that help organizations build more scalable, resilient, and cost-efficient connected solutions. With support for &lt;STRONG data-start="1095" data-end="1131"&gt;MQTT v5 Subscription Identifiers,&lt;/STRONG&gt; &lt;STRONG data-start="1069" data-end="1093"&gt;larger messages(1MB)&lt;/STRONG&gt;,&amp;nbsp;and &lt;STRONG&gt;Auto &lt;/STRONG&gt;&lt;STRONG data-start="1137" data-end="1174"&gt;scale-up and scale-down&lt;/STRONG&gt;, customers can simplify architecture, reduce operational overhead, and accelerate deployments across manufacturing, automotive, retail, energy, and other connected industries.&lt;/P&gt;
&lt;H2&gt;Event Grid Standard: MQTT v5 Subscription Identifier (GA)&lt;/H2&gt;
&lt;H3&gt;What it solves&lt;/H3&gt;
&lt;P&gt;In many MQTT applications, one client subscribes to several topics at the same time. When a message arrives, the application needs a quick way to tell which subscription triggered it and what should happen next.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;Which subscription triggered this message?&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Which business rule should process it?&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;What’s new&lt;/H3&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-support#subscription-identifiers" target="_blank" rel="noopener"&gt;MQTT v5 Subscription Identifier&lt;/A&gt; is now generally available in Event Grid MQTT broker. Each subscription can have an ID, and that ID is included when the message is delivered.&lt;/P&gt;
&lt;P&gt;Each subscription can have an &lt;STRONG&gt;ID&lt;/STRONG&gt;, and when a message is delivered, that ID comes with it.&lt;/P&gt;
&lt;H3&gt;Why it matters&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Faster message routing&lt;/LI&gt;
&lt;LI&gt;Cleaner application logic&lt;/LI&gt;
&lt;LI&gt;No need to parse topic strings&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Simple example&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Example subscriptions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Subscription ID 101 = &lt;EM&gt;factory/line1/temperature&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Subscription ID 202 = &lt;EM&gt;factory/line1/vibration&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;When a message arrives&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;If the message comes in with Subscription ID 101, the app immediately knows it is temperature data and can send it to the correct processing path without inspecting the topic string.&lt;/P&gt;
&lt;img&gt;Instant message context with MQTT v5 Subscription Identifiers&lt;/img&gt;
&lt;H3&gt;Common use cases&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Manufacturing lines with hundreds of sensors&lt;/LI&gt;
&lt;LI&gt;Automotive telemetry platforms&lt;/LI&gt;
&lt;LI&gt;Multi‑tenant IoT solutions&lt;/LI&gt;
&lt;LI&gt;Rule engines and stream processors&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Event Grid Standard: 1MB Message Support (GA) -&amp;nbsp;&lt;SPAN class="lia-text-color-10"&gt;&lt;EM&gt;Coming Soon&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;EM&gt;Applies to both MQTT and non-MQTT workloads.&lt;/EM&gt;&lt;/P&gt;
&lt;H3&gt;What it solves&lt;/H3&gt;
&lt;P&gt;As devices and applications become more capable, the events they send are becoming richer too.&lt;/P&gt;
&lt;P&gt;In many real-world scenarios, a single message may need to include things like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Sensor batches&lt;/LI&gt;
&lt;LI&gt;Telemetry snapshots&lt;/LI&gt;
&lt;LI&gt;Diagnostics data&lt;/LI&gt;
&lt;LI&gt;Configuration payloads&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Before this, customers often had to split large messages into smaller pieces or store the payload somewhere else and send only a reference.&lt;/P&gt;
&lt;H3&gt;What’s new&lt;/H3&gt;
&lt;P&gt;Event Grid Standard Namespace now supports larger event payloads upto 1MB for both MQTT and non-MQTT scenarios. That means customers can send more complete information in one message and reduce complex workarounds in design.&lt;/P&gt;
&lt;H3&gt;Why it matters&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Fewer architectural components&lt;/LI&gt;
&lt;LI&gt;Simpler producers and consumers&lt;/LI&gt;
&lt;LI&gt;Lower latency for real‑time decisions&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Example&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Before:&lt;/STRONG&gt; A factory device sent the main payload to storage and then published a small event that pointed to that file.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Now:&lt;/STRONG&gt; The same device can publish the full event payload directly through Event Grid, making the flow easier to build and easier to operate.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt; A smart machine can send a larger diagnostic package in one event, including the machine ID, a batch of readings, and a timestamp, instead of splitting the information across multiple services.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Unlock larger event-driven workloads with Azure Event Grid&lt;/img&gt;
&lt;H3&gt;Common use cases&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Smart manufacturing telemetry&lt;/LI&gt;
&lt;LI&gt;Vehicle diagnostics and firmware data&lt;/LI&gt;
&lt;LI&gt;Batch sensor readings from edge devices&lt;/LI&gt;
&lt;LI&gt;Rich business events for analytics&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Event Grid Standard: Autoscale Up and Down (Preview) - &lt;EM&gt;&lt;SPAN class="lia-text-color-10"&gt;Coming Soon&lt;/SPAN&gt;&lt;/EM&gt;&lt;/H2&gt;
&lt;P&gt;&lt;EM&gt;Applies to both MQTT and non-MQTT workloads.&lt;/EM&gt;&lt;/P&gt;
&lt;H3&gt;What it solves&lt;/H3&gt;
&lt;P&gt;Event-driven systems rarely operate at a constant rate. Traffic patterns fluctuate throughout the day, with predictable peaks, seasonal surges, and unexpected bursts that can quickly overwhelm static infrastructure.&lt;/P&gt;
&lt;P&gt;Think about:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Morning factory startup&lt;/LI&gt;
&lt;LI&gt;Fleet check‑ins at the top of the hour&lt;/LI&gt;
&lt;LI&gt;Flash sales or system bursts&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Manually sizing infrastructure leads to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Over‑provisioning (higher cost)&lt;/LI&gt;
&lt;LI&gt;Under‑provisioning (missed events)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;What’s new&lt;/H3&gt;
&lt;P&gt;Azure Event Grid Standard Namespace now supports &lt;STRONG&gt;Autoscale Up and Down&lt;/STRONG&gt;, automatically adjusting capacity based on real-time workload demand. Whether you're running MQTT-based IoT workloads or event-driven applications using HTTP, AMQP, or CloudEvents, Event Grid dynamically scales resources to match traffic patterns without manual intervention.&lt;/P&gt;
&lt;P&gt;As demand grows, Event Grid automatically adds capacity to absorb increased traffic and maintain performance. When activity subsides, resources scale back down to optimize efficiency and reduce costs.&lt;/P&gt;
&lt;H3&gt;Why it matters&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;With Autoscale, customers can focus on building applications instead of managing infrastructure and reap benefits like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Scale seamlessly during traffic spikes without pre-provisioning for peak demand.&lt;/LI&gt;
&lt;LI&gt;Reduce costs during quieter periods by automatically scaling capacity down.&lt;/LI&gt;
&lt;LI&gt;Maintain consistent performance and reliability across changing workloads.&lt;/LI&gt;
&lt;LI&gt;Eliminate manual tuning and capacity planning, reducing operational overhead.&lt;/LI&gt;
&lt;LI&gt;Optimize resource utilization while supporting millions of devices and high-volume event streams.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Use case: A Modern Event-Driven Manufacturing Platform&lt;/H3&gt;
&lt;P&gt;A smart manufacturing company uses Microsoft to connect factory machines, sensors, edge gateways, and enterprise applications through a single scalable eventing platform. Devices publish rich telemetry and diagnostic payloads using MQTT, while cloud applications send operational and business events using HTTP. The company has steady traffic during the day, a large spike during shift changes, and much lower usage overnight. With &lt;STRONG&gt;autoscale&lt;/STRONG&gt;, Event Grid adjusts capacity automatically, so performance stays strong when traffic is high and costs stay more efficient when traffic is low.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Autoscale intelligently to match changing workload demands&lt;/img&gt;
&lt;H3&gt;Common use cases&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Shift‑based manufacturing systems&lt;/LI&gt;
&lt;LI&gt;Connected vehicle platforms&lt;/LI&gt;
&lt;LI&gt;Event‑driven commerce backends&lt;/LI&gt;
&lt;LI&gt;Analytics pipelines with bursty data&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="0" data-end="108"&gt;&lt;STRONG data-start="0" data-end="108"&gt;Building IoT platforms, manufacturing and automotive solutions, or high-scale event-driven applications?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-start="110" data-end="337" data-is-last-node="" data-is-only-node=""&gt;Azure Event Grid MQTT Broker now delivers &lt;STRONG&gt;larger&lt;/STRONG&gt;&lt;STRONG data-start="152" data-end="228"&gt; messages, subscription Identifiers, and autoscale up/down&lt;/STRONG&gt;, helping you simplify operations, improve performance, and optimize costs all on a single eventing platform.&lt;/P&gt;
&lt;H2&gt;Event Grid Basic: Powering Event Driven Payments with Stripe (GA)&lt;/H2&gt;
&lt;P&gt;Developers can seamlessly route Stripe events into Azure Event Grid to build scalable, event driven architectures without managing webhooks or custom brokers. Event Grid acts as a fully managed event broker between Stripe and Azure services.&lt;/P&gt;
&lt;P&gt;Azure Event Grid now delivers Stripe events directly to Azure subscribers, including:&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;And more&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;With Event Grid’s native integration with Microsoft Fabric, Stripe events can also be ingested as continuous streams, enabling real time transformation, enrichment, and analytics within Fabric. &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/messagingonazureblog/stripe-events--azure-event-grid-now-generally-available/4518499" target="_blank" rel="noopener" data-lia-auto-title="Learn more" data-lia-auto-title-active="0"&gt;Learn more&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jun 2026 17:23:07 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/azure-event-grid-powering-iot-and-event-driven-applications-at/ba-p/4521403</guid>
      <dc:creator>Connected-Seth</dc:creator>
      <dc:date>2026-06-03T17:23:07Z</dc:date>
    </item>
    <item>
      <title>Build Smarter, Simpler IoT Messaging with Azure Event Grid MQTT Broker</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/build-smarter-simpler-iot-messaging-with-azure-event-grid-mqtt/ba-p/4518672</link>
      <description>&lt;H1&gt;Why this matters for modern IoT solutions&lt;/H1&gt;
&lt;P&gt;As IoT solutions grow, teams need messaging that is reliable, scalable, and simple enough to operate across devices, apps, and cloud services. &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-overview" target="_blank"&gt;Azure Event Grid MQTT broker&lt;/A&gt; helps organizations connect devices and applications using standard MQTT patterns while also integrating with Azure services for downstream processing and automation. The result is a managed, cloud-native approach to messaging that supports both technical flexibility and business agility.&lt;/P&gt;
&lt;P&gt;With support for MQTT v3.1.1 and MQTT v5, Azure Event Grid MQTT broker enables device-to-device, device-to-cloud, and server-to-device communication patterns. It is especially useful in scenarios where customers want to ingest telemetry, send commands, broadcast alerts, and route data into analytics or workflow systems without building and maintaining broker infrastructure themselves.&lt;/P&gt;
&lt;P&gt;In this post, we focus on four capabilities that make the experience even more powerful and easier to adopt: MQTT Retain support, Shared Subscriptions, HTTP Publish of MQTT messages, and Subscription Identifiers. These features help new subscribers get context immediately, allow multiple consumers to scale out work, let HTTP-native back-end services participate in MQTT workflows, and make message handling more efficient for clients.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Azure Event Grid MQTT Broker powering real-time event flow from devices and applications to analytics, automation, AI, and storage services.&lt;/img&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Four features that make MQTT messaging easier to use&lt;/H1&gt;
&lt;P&gt;These capabilities are designed to solve everyday problems that customers face when building real-world IoT systems.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-retain" target="_blank" rel="noopener"&gt;MQTT Retain support&lt;/A&gt;&lt;/STRONG&gt; helps newly connected clients get the latest known value right away.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-shared-subscriptions" target="_blank" rel="noopener"&gt;Shared Subscriptions&lt;/A&gt;&lt;/STRONG&gt; help distribute message processing across multiple consumers for better scale and resilience.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-http-publish" target="_blank" rel="noopener"&gt;HTTP Publish of MQTT messages&lt;/A&gt;&lt;/STRONG&gt; enables back-end services to send MQTT messages without keeping long-lived MQTT sessions open.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-support#subscription-identifiers" target="_blank" rel="noopener"&gt;Subscription Identifiers&lt;/A&gt;&lt;/STRONG&gt; help clients understand which subscription matched a received message, making routing and processing simpler.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Together, these features reduce application complexity, improve responsiveness, and make it easier for teams to build user-friendly, production-ready IoT experiences.&lt;/P&gt;
&lt;H1&gt;MQTT Retain support: Give new subscribers the latest known value instantly&lt;/H1&gt;
&lt;P&gt;One of the most helpful MQTT patterns is the ability to retain the latest message on a topic. With MQTT Retain support in Azure Event Grid, the broker stores the last known good value for a topic and delivers it immediately to a new subscriber. That means a client does not have to wait for the next live publish to understand the current state.&lt;/P&gt;
&lt;P&gt;This is especially valuable for scenarios such as device state, configuration settings, last reported sensor readings, and control values. When a new application, dashboard, or device comes online, it can immediately understand the current state of the system and take action faster.&lt;/P&gt;
&lt;H2&gt;Example&lt;/H2&gt;
&lt;P&gt;Imagine a smart factory dashboard subscribing to the topic &lt;STRONG&gt;factory/line1/status&lt;/STRONG&gt;. If the latest retained message says &lt;STRONG&gt;Running&lt;/STRONG&gt;, a newly opened dashboard can display that status immediately instead of waiting for the next update.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;
&lt;P data-start="0" data-end="153" data-is-last-node="" data-is-only-node=""&gt;Retained messages ensure new subscribers instantly receive the latest device state without waiting for the next publish&lt;/P&gt;
&lt;/img&gt;
&lt;H2&gt;Why customers like it&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Faster onboarding for newly connected devices and apps&lt;/LI&gt;
&lt;LI&gt;Better user experience in dashboards and operator tools&lt;/LI&gt;
&lt;LI&gt;Less waiting for current state information&lt;/LI&gt;
&lt;LI&gt;Simpler application logic for recovering context&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Common use cases&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Device online or offline state&lt;/LI&gt;
&lt;LI&gt;Latest environmental reading such as temperature or humidity&lt;/LI&gt;
&lt;LI&gt;Machine mode, recipe, or configuration profile&lt;/LI&gt;
&lt;LI&gt;Current command state for field equipment&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Shared Subscriptions: Scale message processing without extra complexity&lt;/H1&gt;
&lt;P&gt;As message volume grows, a single subscriber may not be enough to process all incoming data efficiently. Shared Subscriptions solve this by allowing multiple consumers to share the work for a subscription. Instead of every consumer receiving every message, the broker distributes messages across members of the shared group.&lt;/P&gt;
&lt;P&gt;This is a powerful pattern for scaling out telemetry processing, command handling, or event enrichment pipelines. It also helps improve resilience because work can continue even if one consumer instance goes offline.&lt;/P&gt;
&lt;H2&gt;Example&lt;/H2&gt;
&lt;P&gt;Suppose you have a fleet of connected vehicles publishing telemetry to &lt;STRONG&gt;vehicles/+/telemetry&lt;/STRONG&gt;. A back-end processing service might run three worker instances subscribed through a shared subscription. Rather than each worker processing all messages, the workload is divided across the three instances, which improves throughput and reduces duplicate effort.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;
&lt;P data-start="0" data-end="174" data-is-last-node="" data-is-only-node=""&gt;Shared subscriptions distribute telemetry messages across multiple worker nodes for scalable, load-balanced, and resilient stream processing.&lt;/P&gt;
&lt;/img&gt;
&lt;H2&gt;Why customers like it&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Easier horizontal scaling for high-volume topics&lt;/LI&gt;
&lt;LI&gt;Improved throughput for back-end processing&lt;/LI&gt;
&lt;LI&gt;Better fault tolerance for worker-based applications&lt;/LI&gt;
&lt;LI&gt;Cleaner architecture for stream processing pipelines&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Common use cases&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Telemetry ingestion at scale&lt;/LI&gt;
&lt;LI&gt;Alarm processing pipelines&lt;/LI&gt;
&lt;LI&gt;Order or command handling across multiple workers&lt;/LI&gt;
&lt;LI&gt;Message transformation before routing to analytics platforms&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Shared Subscriptions help teams grow from pilot projects to production-scale deployments without redesigning their application model. They make it easier to add processing capacity as business needs expand.&lt;/P&gt;
&lt;H1&gt;HTTP Publish of MQTT messages: Bring HTTP-native back-end systems into MQTT workflows&lt;/H1&gt;
&lt;P&gt;Not every application wants to maintain a persistent MQTT connection. Many back-end systems are built around stateless HTTP APIs and prefer simple request-based interactions. Azure Event Grid supports publishing MQTT messages over HTTP, which makes it easier for server-side applications to send messages into MQTT-based solutions.&lt;/P&gt;
&lt;P&gt;This capability is a strong fit for server-to-device command and control, updates from enterprise systems, and retained message management. It also helps protect broker stability by reducing the need for a large number of long-lived sessions from services that do not truly need them.&lt;/P&gt;
&lt;H2&gt;Example&lt;/H2&gt;
&lt;P&gt;Imagine a support application that needs to send a message to a field device asking it to refresh its configuration. Instead of opening an MQTT session, the application can make an HTTP POST request that maps to an MQTT publish operation and sends the command to the desired topic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Azure Event Grid MQTT Broker enables business applications to publish MQTT messages over HTTP and securely deliver them to connected MQTT devices with full MQTT publish capabilities.&lt;/img&gt;
&lt;H2&gt;Why customers like it&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Simple integration for HTTP-native applications&lt;/LI&gt;
&lt;LI&gt;No need for persistent broker sessions in back-end services&lt;/LI&gt;
&lt;LI&gt;Consistent messaging flow across HTTP and MQTT publishers&lt;/LI&gt;
&lt;LI&gt;Easier integration with business systems and automation workflows&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Common use cases&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Server-to-device commands&lt;/LI&gt;
&lt;LI&gt;Application-driven updates and prompts&lt;/LI&gt;
&lt;LI&gt;Retained message management&lt;/LI&gt;
&lt;LI&gt;Integration with business processes, portals, and line-of-business apps&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Subscription Identifiers: Make client-side message handling smarter&lt;/H1&gt;
&lt;P&gt;As applications grow, a single client may subscribe to many topic filters at the same time. Subscription Identifiers help the client understand which subscription matched a delivered message. This makes application logic cleaner because the client does not have to guess why a message arrived or manually compare it against every subscribed filter.&lt;/P&gt;
&lt;P&gt;In practical terms, this is useful when one client is listening for different kinds of data such as telemetry, alerts, and control acknowledgments. Instead of writing extra parsing logic, the client can use the identifier to route the message to the right processing path immediately.&lt;/P&gt;
&lt;H2&gt;Example&lt;/H2&gt;
&lt;P&gt;A monitoring application subscribes to one filter for &lt;STRONG&gt;devices/+/telemetry&lt;/STRONG&gt; and another for &lt;STRONG&gt;devices/+/alerts&lt;/STRONG&gt;. When a message arrives, the subscription identifier helps the application know whether the message should be shown on a live dashboard, routed to alert handling, or stored for analysis.&lt;/P&gt;
&lt;img&gt;Subscription identifiers to help applications intelligently route telemetry and alert messages for dashboards, alerting workflows, and analytics processing.&lt;/img&gt;
&lt;H2&gt;Why customers like it&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Simpler client code&lt;/LI&gt;
&lt;LI&gt;Cleaner separation of processing paths&lt;/LI&gt;
&lt;LI&gt;Easier troubleshooting and observability&lt;/LI&gt;
&lt;LI&gt;Better support for sophisticated MQTT v5 client applications&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Common use cases&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Applications subscribing to multiple topic categories&lt;/LI&gt;
&lt;LI&gt;Edge gateways handling mixed streams&lt;/LI&gt;
&lt;LI&gt;Dashboards that separate operational data from alerts&lt;/LI&gt;
&lt;LI&gt;Services that apply different business logic based on subscription intent&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Putting it all together: A simple customer scenario&lt;/H1&gt;
&lt;P&gt;Consider a &lt;STRONG&gt;smart manufacturing plant&lt;/STRONG&gt;. Machines, PLCs, and industrial sensors continuously publish telemetry such as production counts, machine health, vibration, and temperature. Operations dashboards subscribe to real-time machine status and line performance. Maintenance systems send commands to equipment when anomalies or thresholds are detected. Meanwhile, analytics workers process high-volume telemetry streams in parallel for quality monitoring, predictive maintenance, and throughput optimization.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Azure Event Grid MQTT Broker enables scalable smart manufacturing with retained state visibility, shared telemetry processing, HTTP-based command control, and intelligent subscription routing.&lt;/img&gt;
&lt;P&gt;In this scenario,&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-retain" target="_blank"&gt;&lt;STRONG&gt;MQTT Retain&lt;/STRONG&gt;&lt;/A&gt; support ensures that a newly opened operations dashboard immediately sees the latest machine state without waiting for the next update. &lt;STRONG&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-shared-subscriptions" target="_blank"&gt;Shared Subscriptions&lt;/A&gt; &lt;/STRONG&gt;enable multiple analytics workers to process telemetry streams in parallel, improving scalability and avoiding duplicate processing. &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-http-publish" target="_blank"&gt;&lt;STRONG&gt;HTTP Publish&lt;/STRONG&gt;&lt;/A&gt; of MQTT messages allows MES or maintenance applications to send commands to machines through simple HTTP requests, without needing a persistent MQTT connection. &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/event-grid/mqtt-support#subscription-identifiers" target="_blank"&gt;&lt;STRONG&gt;Subscription Identifiers&lt;/STRONG&gt;&lt;/A&gt; help downstream systems distinguish between telemetry, alerts, and control signals, enabling clean routing to the right processing pipelines.&lt;/P&gt;
&lt;P&gt;The result is a unified, event-driven architecture that is scalable, efficient, and easier to operate—supporting real-time visibility, faster decision-making, and continuous optimization across the manufacturing floor.&lt;/P&gt;
&lt;P&gt;Azure Event Grid MQTT broker continues to make cloud-scale MQTT messaging more approachable for customers building modern IoT and event-driven solutions. Features such as MQTT Retain support, Shared Subscriptions, HTTP Publish of MQTT messages, and Subscription Identifiers help simplify application design while improving responsiveness, scale, and operational efficiency.&lt;/P&gt;
&lt;P&gt;For teams looking to build customer-ready solutions faster, these capabilities can reduce custom code, accelerate onboarding, and create a smoother path from proof of concept to production. Whether you are building connected products, industrial monitoring systems, smart spaces, or data-driven operations, Azure Event Grid MQTT broker provides a flexible foundation for reliable communication across devices, services, and applications.&lt;/P&gt;
&lt;P&gt;Now is a great time to explore how these features can help simplify your architecture and unlock new patterns for device connectivity and cloud integration.&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2026 21:39:49 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/build-smarter-simpler-iot-messaging-with-azure-event-grid-mqtt/ba-p/4518672</guid>
      <dc:creator>Connected-Seth</dc:creator>
      <dc:date>2026-05-12T21:39:49Z</dc:date>
    </item>
    <item>
      <title>Announcing general availability of confidential computing for Azure Service Bus Premium</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-general-availability-of-confidential-computing-for/ba-p/4517931</link>
      <description>&lt;P&gt;Today we are excited to announce the general availability of&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/confidential-computing" target="_blank"&gt;confidential computing&lt;/A&gt; for Azure Service Bus Premium. With this capability, your Service Bus namespace processes messages inside hardware-based trusted execution environments (TEEs), preventing unauthorized access to data while it is being processed. This rounds out our protection story alongside existing encryption at rest and in transit, giving customers with regulatory or sensitive workloads a way to protect their messaging data through every stage of its lifecycle.&lt;/P&gt;
&lt;H2&gt;How confidential computing fits with existing Service Bus security&lt;/H2&gt;
&lt;P&gt;Service Bus already provides strong protection for messaging data. TLS encryption protects data in transit, and encryption at rest with optional support for &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/configure-customer-managed-key" target="_blank"&gt;customer-managed keys (CMK)&lt;/A&gt; protects data at rest. Network controls such as&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/private-link-service" target="_blank"&gt;private endpoints&lt;/A&gt;, &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/network-security" target="_blank"&gt;IP firewall rules&lt;/A&gt;, and &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/service-bus-managed-service-identity" target="_blank"&gt;managed identities&lt;/A&gt; restrict who can reach the namespace and how it authenticates to dependent services.&lt;/P&gt;
&lt;P&gt;Confidential computing fills the remaining gap by adding hardware-level isolation to data in use. When a Service Bus Premium namespace runs on confidential compute hardware, message processing happens inside a TEE, an isolated portion of the processor and memory that even privileged operators cannot access. This is the same model that backs &lt;A class="lia-external-url" href="https://azure.microsoft.com/solutions/confidential-compute" target="_blank"&gt;Azure confidential computing&lt;/A&gt; for VMs and containers, now applied to managed messaging.&lt;/P&gt;
&lt;H2&gt;Concepts&lt;/H2&gt;
&lt;P&gt;Confidential computing is a namespace-level setting. You enable it when you create a Service Bus Premium namespace, and the setting is immutable for the lifetime of the namespace. After it is enabled, all queues, topics, and subscriptions in that namespace benefit from hardware-isolated processing automatically. No application changes are required, so existing clients and messaging patterns continue to work without modification.&lt;/P&gt;
&lt;P&gt;Because the setting is immutable, customers who want to move an existing workload to confidential computing need to create a new namespace with the setting enabled and migrate their queues and topics across.&lt;/P&gt;
&lt;H2&gt;Regional availability&lt;/H2&gt;
&lt;P&gt;At general availability, confidential computing for Service Bus Premium is available in &lt;STRONG&gt;Korea Central&lt;/STRONG&gt; and &lt;STRONG&gt;UAE North&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H2&gt;Getting started&lt;/H2&gt;
&lt;P&gt;You can enable confidential computing on a new Service Bus Premium namespace from the Azure portal:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;In the&amp;nbsp;&lt;A class="lia-external-url" href="https://portal.azure.com" target="_blank"&gt;Azure portal&lt;/A&gt;, open the &lt;STRONG&gt;Create namespace&lt;/STRONG&gt;&amp;nbsp;page.&lt;/LI&gt;
&lt;LI&gt;Select &lt;STRONG&gt;Premium &lt;/STRONG&gt;for the pricing tier.&lt;/LI&gt;
&lt;LI&gt;Select a &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/confidential-computing#regional-availability" target="_blank"&gt;supported region&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;For &lt;STRONG&gt;Confidential compute&lt;/STRONG&gt;, select&amp;nbsp;&lt;STRONG&gt;Enabled&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Fill in the remaining fields and select&amp;nbsp;&lt;STRONG&gt;Review + create&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;You can also enable confidential computing programmatically through Bicep, ARM templates, or any other deployment tooling that supports the &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/service-bus-messaging/confidential-computing#enable-confidential-computing-by-using-a-template" target="_blank"&gt;&lt;EM&gt;platformCapabilities&lt;/EM&gt;&lt;/A&gt; property on the namespace resource.&lt;/P&gt;
&lt;H2&gt;Combine with customer-managed keys for maximum protection&lt;/H2&gt;
&lt;P&gt;For workloads with the strictest requirements, we recommend pairing confidential computing with customer-managed keys backed by &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/key-vault/managed-hsm/overview" target="_blank"&gt;Azure Key Vault Managed HSM&lt;/A&gt;. This combination protects data in use through the TEE, protects data at rest through validated hardware security modules, and keeps full control of the encryption keys with the customer. Together with private endpoints and managed identities, this gives customers a defense-in-depth posture that meets the most stringent regulatory and compliance requirements.&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/confidential-computing" target="_blank"&gt;documentation&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2026 18:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/announcing-general-availability-of-confidential-computing-for/ba-p/4517931</guid>
      <dc:creator>EldertGrootenboer</dc:creator>
      <dc:date>2026-05-11T18:00:00Z</dc:date>
    </item>
    <item>
      <title>Azure Service Bus Premium now offers 99.99% SLA in all Availability Zone regions</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/azure-service-bus-premium-now-offers-99-99-sla-in-all/ba-p/4517933</link>
      <description>&lt;P&gt;Today we are excited to announce an update to the Azure Service Bus &lt;A class="lia-external-url" href="https://www.microsoft.com/licensing/docs/view/Service-Level-Agreements-SLA-for-Online-Services?lang=1" target="_blank"&gt;Service Level Agreement&lt;/A&gt;. Starting May 1, 2026, all Premium namespaces deployed in regions with&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-outages-disasters#availability-zones" target="_blank"&gt;Availability Zone&lt;/A&gt; support will receive a 99.99% uptime SLA. This applies regardless of whether partitioning is enabled on the namespace.&lt;/P&gt;
&lt;P&gt;Service Bus Premium is the tier customers choose for their most important workloads, where dedicated resources, predictable performance, and strong isolation matter. With this update, the SLA matches the resilience those deployments already have when they run across Availability Zones.&lt;/P&gt;
&lt;H2&gt;What is an Availability Zone&lt;/H2&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/reliability/availability-zones-overview" target="_blank"&gt;Availability Zones&lt;/A&gt; are physically separate datacenters within an Azure region, each with independent power, cooling, and networking. A Premium namespace deployed in an Availability Zone region is automatically replicated across multiple zones, so the messaging service stays available even if a full datacenter goes offline. The new 99.99% SLA reflects this zone-redundant deployment model, with no additional configuration required.&lt;/P&gt;
&lt;H2&gt;What changed&lt;/H2&gt;
&lt;P&gt;Previously, the 99.99% SLA was available only for Premium namespaces that had&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/enable-partitions-premium" target="_blank"&gt;partitioned namespaces&lt;/A&gt; enabled and were deployed in a region with Availability Zone support. With this update, we are removing the partitioning requirement. Any Premium namespace in an Availability Zone region now qualifies for the 99.99% SLA - no configuration changes needed.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 100%; height: 175px; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 33.3333%" /&gt;&lt;col style="width: 33.3333%" /&gt;&lt;col style="width: 33.3333%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 35px;"&gt;&lt;td class="lia-align-center" style="height: 35px;"&gt;&lt;STRONG&gt;Scenario&lt;/STRONG&gt;&lt;/td&gt;&lt;td class="lia-align-center" style="height: 35px;"&gt;&lt;STRONG&gt;SLA before May 1&lt;/STRONG&gt;&lt;/td&gt;&lt;td class="lia-align-center" style="height: 35px;"&gt;&lt;STRONG&gt;SLA from May 1&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;Premium, AZ region, partitioned&lt;/td&gt;&lt;td class="lia-align-right" style="height: 35px;"&gt;99.99%&lt;/td&gt;&lt;td class="lia-align-right" style="height: 35px;"&gt;99.99%&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;Premium, AZ region, non-partitioned&lt;/td&gt;&lt;td class="lia-align-right" style="height: 35px;"&gt;99.9%&lt;/td&gt;&lt;td class="lia-align-right" style="height: 35px;"&gt;&lt;STRONG&gt;99.99%&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;All tiers, non-AZ region&lt;/td&gt;&lt;td class="lia-align-right" style="height: 35px;"&gt;99.9%&lt;/td&gt;&lt;td class="lia-align-right" style="height: 35px;"&gt;99.9%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For customers already running Premium namespaces in Availability Zone regions without partitioning, this is an automatic improvement - there is nothing to change or reconfigure.&lt;/P&gt;
&lt;H2&gt;Why this matters&lt;/H2&gt;
&lt;P&gt;When we &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/messagingonazureblog/announcing-general-availability-of-partitioned-namespaces-for-azure-service-bus-/3961912" data-lia-auto-title="announced general availability of partitioned namespaces" data-lia-auto-title-active="0" target="_blank"&gt;announced general availability of partitioned namespaces&lt;/A&gt; in November 2023, we introduced the 99.99% SLA as a benefit tied to both partitioning and Availability Zones. Partitioning helps workloads that need higher throughput, but not every workload requires it. Customers who chose Premium for its dedicated resources, network isolation, and predictable performance - but did not need the throughput scaling of partitioned namespaces - were left at the 99.9% tier despite being deployed with zone redundancy.&lt;/P&gt;
&lt;P&gt;This update recognizes that the core reliability benefit comes from the Availability Zone deployment itself. Premium namespaces in AZ regions already run on zone-redundant infrastructure, and the SLA now reflects that.&lt;/P&gt;
&lt;H2&gt;What about partitioned namespaces&lt;/H2&gt;
&lt;P&gt;Partitioned namespaces remain fully supported and continue to provide throughput benefits by distributing messaging across multiple brokers. The change here is purely about the SLA eligibility - partitioning is no longer a prerequisite for the higher SLA. If your workload benefits from partitioned namespaces for throughput reasons, we still recommend using them.&lt;/P&gt;
&lt;H2&gt;Getting started&lt;/H2&gt;
&lt;P&gt;If you are already running a Premium namespace in an Availability Zone region, you automatically benefit from the 99.99% SLA starting May 1, 2026. No action is required.&lt;/P&gt;
&lt;P&gt;If you are running a Standard namespace and your workload demands the higher availability that comes with Premium, consider &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-premium-messaging" target="_blank"&gt;upgrading to the Premium tier&lt;/A&gt;. Premium is built for the workloads where messaging cannot fail, providing dedicated resources, predictable performance, network isolation features like VNet integration and private endpoints, and now a 99.99% SLA in any Availability Zone region.&lt;/P&gt;
&lt;P&gt;More information can be found in the &lt;A class="lia-external-url" href="https://www.microsoft.com/licensing/docs/view/Service-Level-Agreements-SLA-for-Online-Services?lang=1" target="_blank"&gt;SLA for Azure Service Bus&lt;/A&gt; and the &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-premium-messaging" target="_blank"&gt;Service Bus Premium tier documentation&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2026 17:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/azure-service-bus-premium-now-offers-99-99-sla-in-all/ba-p/4517933</guid>
      <dc:creator>EldertGrootenboer</dc:creator>
      <dc:date>2026-05-11T17:00:00Z</dc:date>
    </item>
    <item>
      <title>Stripe Events + Azure Event Grid: Now Generally Available</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/stripe-events-azure-event-grid-now-generally-available/ba-p/4518499</link>
      <description>&lt;P&gt;Stripe events give developers real-time visibility into everything happening in their Stripe accounts — payments, subscriptions, refunds, disputes, and more. With Azure Event Grid as a destination for Stripe events, now Generally Available, teams can route those signals directly into Azure and build scalable, event-driven architectures without managing webhook infrastructure.&lt;/P&gt;
&lt;H1&gt;Stripe events meet Azure Event Grid&lt;/H1&gt;
&lt;img /&gt;
&lt;P&gt;Stripe produces events for changes across payments, customers, subscriptions, accounts, meters, and more — covering hundreds of distinct event types. Azure Event Grid acts as a fully managed event broker, routing those events directly into Azure so teams can build reactive, real-time workflows without managing custom webhook infrastructure. Here are some of the scenarios this enables:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Automate business logic on every payment: &lt;/STRONG&gt;Use Azure Functions to react instantly to payment completions, refunds, or disputes — triggering fulfillment, updating inventory, or sending confirmation emails in real time.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Orchestrate cross-system workflows: &lt;/STRONG&gt;Use Logic Apps to connect Stripe events to CRM systems, ERP platforms, or ticketing tools — automatically syncing data and triggering multi-step processes without writing code.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Stream events for real-time analytics: &lt;/STRONG&gt;Route Stripe events to Azure Event Hubs and connect them to Microsoft Fabric Eventstream to power live dashboards, revenue trend analysis, and churn detection as events happen.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Decouple and scale payment processing: &lt;/STRONG&gt;Send events to Service Bus or Storage Queues to buffer and distribute high-volume payment workloads across independent consumers, ensuring reliability and scalability under load.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Integrate with external systems and partners: &lt;/STRONG&gt;Use Webhooks or Hybrid Connections to forward Stripe events to third-party platforms, on-premises systems, or partner services — without exposing internal infrastructure.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fan out events across multiple consumers: &lt;/STRONG&gt;Publish to Azure Event Grid Namespace Topics to broadcast a single Stripe event to multiple subscribers simultaneously, enabling parallel processing across different teams or services.&lt;/P&gt;
&lt;P&gt;This creates a clean separation between event ingestion, routing, and processing, following modern event-driven design principles.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Deep Dive: Processing Core Payment Events with Azure Event Grid&lt;/H2&gt;
&lt;P&gt;To build a production-ready integration that reacts to business-critical signals like successful payments or disputes, follow these steps to route Stripe events through Azure Event Grid.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Set up Partner Authorization in Azure&lt;/STRONG&gt;: Register the Event Grid resource provider in the Azure portal and create a Partner Authorization to grant Stripe permission to create Partner Topics.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Configure the Event Destination in Stripe&lt;/STRONG&gt;: In the Stripe Dashboard, configure the event destination by providing your Azure subscription ID, resource group, and region to connect the accounts.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Activate the Partner Topic&lt;/STRONG&gt;: Once Stripe creates the Partner Topic in your Azure resource group, you must activate it in the Azure portal within seven days to begin receiving events.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Create an Event Subscription and Handler&lt;/STRONG&gt;: Set up an Event Subscription to route events from the Partner Topic to an Azure service, such as an Azure Function or Logic App, which acts as your event handler.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Process the Payment Event Object&lt;/STRONG&gt;: Your handler will receive event objects formatted using the CloudEvents schema. Parse these objects and implement your application logic to react to specific event types like &lt;EM&gt;payment_intent.succeeded&lt;/EM&gt; or &lt;EM&gt;charge.dispute.created&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Retrieve Full Resource Data (Hydration)&lt;/STRONG&gt;: For full context, use "thin event hydration" to fetch the complete resource object (e.g., the full Charge or PaymentIntent) via a call to the Stripe API using the object ID provided in the event data.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img /&gt;
&lt;P&gt;&lt;STRONG&gt;Production and Reliability Notes&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Switch your integration to use live mode API keys and data sources for production readiness.&lt;/LI&gt;
&lt;LI&gt;Stripe automatically retries failed deliveries for up to three days in live mode.&lt;/LI&gt;
&lt;LI&gt;Event ordering is not guaranteed through Event Grid.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; Events are delivered using the CloudEvents schema, and Stripe provides automatic retries for failed deliveries for up to three days.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Extending Stripe events into Fabric Real-Time Intelligence&lt;/H1&gt;
&lt;P&gt;Every payment, subscription change, and customer action in Stripe carries a signal. The question is how fast your business can act on it.&lt;/P&gt;
&lt;P&gt;Azure Event Grid namespaces connect natively with Microsoft Fabric Real-Time Intelligence through Eventstream, turning Stripe events into continuous data streams — no custom ingestion pipelines required. As events flow in, they can be transformed, enriched, and joined with other business signals in real time.&lt;/P&gt;
&lt;P&gt;This opens a new layer of intelligence on top of your commerce data: revenue anomalies surfaced as they happen, churn patterns detected before they compound, and live dashboards that reflect the actual state of your business — not yesterday’s batch.&lt;/P&gt;
&lt;P&gt;For teams already invested in Fabric, this means Stripe becomes a first-class real-time data source alongside the rest of your operational data.&lt;/P&gt;
&lt;H1&gt;Getting started&lt;/H1&gt;
&lt;P&gt;The Stripe destination for Azure Event Grid is now &lt;STRONG&gt;Generally Available&lt;/STRONG&gt;. To get started, configure Azure Event Grid as an event destination 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://stripe.com/docs" target="_blank"&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;
&lt;H1&gt;Building on Public Preview&lt;/H1&gt;
&lt;P&gt;This release marks the General Availability of the Stripe destination for Azure Event Grid, which was first introduced in Public Preview. If you missed the initial announcement, you can read the original blog post: &lt;A href="https://techcommunity.microsoft.com/blog/MessagingonAzureBlog/powering-event-driven-payments-with-stripe-and-azure-event-grid/4507094" target="_blank"&gt;Powering Event-Driven Payments with Stripe and Azure Event Grid&lt;/A&gt;.&lt;/P&gt;
&lt;img /&gt;</description>
      <pubDate>Mon, 11 May 2026 15:38:22 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/stripe-events-azure-event-grid-now-generally-available/ba-p/4518499</guid>
      <dc:creator>robece</dc:creator>
      <dc:date>2026-05-11T15:38:22Z</dc:date>
    </item>
    <item>
      <title>Protect Your Streaming Data in Use: Confidential Computing for Azure Event Hubs Dedicated</title>
      <link>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/protect-your-streaming-data-in-use-confidential-computing-for/ba-p/4515219</link>
      <description>&lt;P data-line="2"&gt;For organizations in regulated industries — financial services, healthcare, government, defense — the security conversation around data has always revolved around two states: data at rest and data in transit. Encrypt your storage. Encrypt your network traffic. Check, check.&lt;/P&gt;
&lt;P data-line="4"&gt;But there's a third state that's been much harder to address:&amp;nbsp;&lt;STRONG&gt;data in use&lt;/STRONG&gt;. What happens to your events while they're being actively processed by the streaming infrastructure? While they're in memory on the broker, being indexed, being replicated? That's the gap that confidential computing closes.&lt;/P&gt;
&lt;P data-line="6"&gt;Today, we're announcing&amp;nbsp;&lt;STRONG&gt;confidential computing support for Azure Event Hubs Dedicated clusters&lt;/STRONG&gt;, available now in Korea Central and UAE North.&lt;/P&gt;
&lt;P data-line="12"&gt;Event Hubs already provides a comprehensive security model: Entra ID authentication, RBAC, TLS 1.2+ in transit, encryption at rest with Microsoft-managed or customer-managed keys, private endpoints, and network isolation.&lt;/P&gt;
&lt;P data-line="14"&gt;Confidential computing completes the picture. It uses hardware-based&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/confidential-computing/overview" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/azure/confidential-computing/overview"&gt;Trusted Execution Environments (TEEs)&lt;/A&gt;&amp;nbsp;— an industry standard defined by the&amp;nbsp;&lt;A href="https://confidentialcomputing.io/" target="_blank" rel="noopener" data-href="https://confidentialcomputing.io/"&gt;Confidential Computing Consortium&lt;/A&gt;, of which Microsoft is a founding member — to protect your event data while it's being actively processed. The TEE creates an encrypted boundary at the silicon level, preventing unauthorized access even from privileged software or compromised infrastructure operators.&lt;/P&gt;
&lt;P data-line="16"&gt;Your data is now protected across all three states:&amp;nbsp;&lt;STRONG&gt;at rest, in transit, and in use.&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2 data-line="20"&gt;Why This Is a Natural Fit for Dedicated&lt;/H2&gt;
&lt;P data-line="22"&gt;Event Hubs Dedicated already provides single-tenant, hardware-isolated clusters. Your resources aren't shared with any other customer. Confidential computing extends that isolation model to the compute layer itself — the dedicated hardware your events run on now operates inside a Trusted Execution Environment.&lt;/P&gt;
&lt;P data-line="24"&gt;And the best part for your engineering teams:&amp;nbsp;&lt;STRONG&gt;confidential computing requires zero changes to your applications&lt;/STRONG&gt;. Your producers and consumers continue to use the same Event Hubs SDK or Apache Kafka® APIs. Connection strings, authentication, partition strategies — nothing changes. You create a new Dedicated cluster with confidential computing enabled, provision your namespaces on it, and the protection is transparent from that point forward.&lt;/P&gt;
&lt;H2 data-line="28"&gt;Defense in Depth&lt;/H2&gt;
&lt;P data-line="30"&gt;Confidential computing is most powerful when combined with other Event Hubs security capabilities. For maximum data protection, pair it with&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/event-hubs/configure-customer-managed-key" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/azure/event-hubs/configure-customer-managed-key"&gt;customer-managed keys&lt;/A&gt;&amp;nbsp;backed by&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/key-vault/managed-hsm/overview" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/azure/key-vault/managed-hsm/overview"&gt;Azure Key Vault Managed HSM&lt;/A&gt;:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Layer&lt;/th&gt;&lt;th&gt;Protection&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Data in use&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Confidential computing (TEE) —&amp;nbsp;&lt;STRONG&gt;New&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Data in transit&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;TLS 1.2+, always-on&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Data at rest&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Customer-managed keys in Managed HSM&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Identity&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Microsoft Entra ID + RBAC + managed identities&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Network&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Private endpoints, VNet rules, IP firewall&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Infrastructure&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Single-tenant dedicated clusters&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Governance&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Azure Policy enforcement&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P data-line="42"&gt;With this combination, your encryption keys are stored in FIPS 140-2 Level 3 validated hardware security modules, your data is encrypted with keys only you control, and your compute is isolated at the hardware level. No single party — including the cloud provider — can access unencrypted data.&lt;/P&gt;
&lt;P data-line="44"&gt;You can also use&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/event-hubs/confidential-computing#use-azure-policy-to-enforce-confidential-computing" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/azure/event-hubs/confidential-computing#use-azure-policy-to-enforce-confidential-computing"&gt;Azure Policy to enforce&lt;/A&gt;&amp;nbsp;that all Dedicated clusters in your organization have confidential computing enabled, ensuring consistent security posture across your environment.&lt;/P&gt;
&lt;H2 data-line="48"&gt;What You Need to Know&lt;/H2&gt;
&lt;UL data-line="50"&gt;
&lt;LI data-line="50"&gt;&lt;STRONG&gt;Tier:&lt;/STRONG&gt;&amp;nbsp;Dedicated only.&lt;/LI&gt;
&lt;LI data-line="51"&gt;&lt;STRONG&gt;Regions:&lt;/STRONG&gt;&amp;nbsp;Korea Central and UAE North.&lt;/LI&gt;
&lt;LI data-line="52"&gt;&lt;STRONG&gt;New clusters required:&lt;/STRONG&gt;&amp;nbsp;Confidential computing must be enabled at cluster creation time. You cannot enable it on existing clusters. If you're running a Dedicated cluster today and want this capability, you'll need to create a new cluster with confidential computing enabled and provision your namespaces on it.&lt;/LI&gt;
&lt;LI data-line="53"&gt;&lt;STRONG&gt;Impact to applications:&lt;/STRONG&gt;&amp;nbsp;None. Zero code changes required. Your producers and consumers connect to the new namespace the same way they always have.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="57"&gt;Get Started&lt;/H2&gt;
&lt;P data-line="59"&gt;If you're already running an Event Hubs Dedicated cluster and need confidential computing, the path is straightforward: create a new Dedicated cluster with confidential computing enabled in a supported region, then create your namespaces on that new cluster. Since your applications require zero code changes, this is an infrastructure migration — not an application migration. We recommend validating with a non-production workload first to confirm your applications behave identically.&lt;/P&gt;
&lt;P data-line="61"&gt;If you're evaluating Event Hubs Dedicated for a new workload with strict security requirements, confidential computing gives you one more reason to choose the Dedicated tier: hardware-level protection you can point to when your compliance team asks&amp;nbsp;&lt;EM&gt;"how is the data protected while it's being processed?"&lt;/EM&gt;&lt;/P&gt;
&lt;P data-line="63"&gt;For step-by-step instructions — including portal walkthrough, Bicep templates, ARM templates, and Azure Policy definitions — see the full documentation:&lt;/P&gt;
&lt;P data-line="65"&gt;&lt;STRONG&gt;➡️&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/event-hubs/confidential-computing" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/azure/event-hubs/confidential-computing"&gt;Confidential computing for Azure Event Hubs&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 01 May 2026 16:11:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/protect-your-streaming-data-in-use-confidential-computing-for/ba-p/4515219</guid>
      <dc:creator>ashish-chhabria</dc:creator>
      <dc:date>2026-05-01T16:11:46Z</dc:date>
    </item>
    <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>
  </channel>
</rss>

