---
id: "azure-event-grid-mqtt"
type: "component"
kind: "pubsub-topic"
provider: "azure"
category: "messaging"
docs: "https://learn.microsoft.com/en-us/azure/event-grid/mqtt-overview"
url: "https://localhost:3000/catalogue/components/azure-event-grid-mqtt"
---

# Azure Event Grid MQTT Broker

MQTT v3.1.1 and v5 pub-sub broker in an Event Grid namespace, with routing of MQTT messages to Azure services.

| | |
|---|---|
| Provider | [azure](https://localhost:3000/catalogue?provider=azure) |
| Kind | [Pub/Sub topic](https://localhost:3000/catalogue/kinds/pubsub-topic) |
| Category | Messaging |
| Official docs | [https://learn.microsoft.com/en-us/azure/event-grid/mqtt-overview](https://learn.microsoft.com/en-us/azure/event-grid/mqtt-overview) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `clientAuthentication` | enum | `x509`, `entra-id`, `oauth-jwt`, `webhook` | no | "x509" | inherited |
| `delivery` | enum | `at-most-once`, `at-least-once`, `exactly-once` | yes | — | **"at-least-once"** |
| `managed` | boolean | — | no | false | **true** |
| `mqttVersion` | enum | `v3-1-1`, `v5` | no | "v5" | inherited |
| `ordering` | enum | `none`, `per-key` | no | "none" | **"none"** |
| `replay` | boolean | — | no | false | **false** |
| `retainedMessages` | boolean | — | no | true | inherited |
| `routingToTopic` | boolean | — | no | false | inherited |
| `sharedSubscriptions` | boolean | — | no | false | inherited |
| `topicPerEventType` (advanced) | boolean | — | no | true | **false** |

Bold values are the ones this component pins.

## Rules that apply · 1

### Pub/Sub topic where replay is required `pubsub-replay-required` (error)

- Page: https://localhost:3000/catalogue/rules/pubsub-replay-required.md
- Why: The design declares that consumers must be able to replay history. A fan-out topic that does not retain messages cannot deliver that.
- Applies to: every node of kind pubsub-topic
- Message: Topic '{{node.id}}' cannot replay messages, but the design requires replay. Use a stream or a replayable queue.

It fires when:

- all of these hold:
  - the design requirement `messaging.replay` is true
  - the node's `replay` is false

## Other products of the same kind · 12

- [EventBridge](https://localhost:3000/catalogue/components/alibaba-eventbridge.md) `alibaba-eventbridge` — alibabacloud
- [Amazon EventBridge](https://localhost:3000/catalogue/components/aws-eventbridge.md) `aws-eventbridge` — aws
- [Amazon SNS](https://localhost:3000/catalogue/components/sns.md) `sns` — aws
- [Azure Event Grid](https://localhost:3000/catalogue/components/azure-event-grid.md) `azure-event-grid` — azure
- [Eclipse Mosquitto](https://localhost:3000/catalogue/components/mosquitto.md) `mosquitto` — default
- [MQTT broker](https://localhost:3000/catalogue/components/mqtt-broker.md) `mqtt-broker` — default
- [NanoMQ](https://localhost:3000/catalogue/components/nanomq.md) `nanomq` — default
- [Generic Pub/Sub topic](https://localhost:3000/catalogue/components/pubsub-topic.md) `pubsub-topic` — default
- [Redis Pub/Sub](https://localhost:3000/catalogue/components/redis-pubsub.md) `redis-pubsub` — default
- [Eventarc](https://localhost:3000/catalogue/components/google-eventarc.md) `google-eventarc` — gcp
- [Google Cloud Pub/Sub](https://localhost:3000/catalogue/components/google-pubsub.md) `google-pubsub` — gcp
- [OCI Events](https://localhost:3000/catalogue/components/oci-events.md) `oci-events` — oci

## Use it in a design

```yaml
nodes:
  - { id: "azure-event-grid-mqtt", component: "azure-event-grid-mqtt" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Event Grid MQTT broker (namespace): MQTT v3.1.1 / v5 pub-sub over topic filters, QoS 0 and 1 only
# (QoS 2 is not supported), retained messages hold the last value but there is no message replay.
# Facts from "MQTT (PubSub) Broker - Azure Event Grid".
schemaVersion: "1"
type: "component"
id: "azure-event-grid-mqtt"
kind: "pubsub-topic"
provider: "azure"
docs: "https://learn.microsoft.com/en-us/azure/event-grid/mqtt-overview"
defaults:
  managed: true
  delivery: "at-least-once"
  ordering: "none"
  replay: false
  topicPerEventType: false
properties:
  mqttVersion:
    type: "enum"
    values: ["v3-1-1", "v5"]
    default: "v5"
  retainedMessages:
    type: "boolean"
    default: true
  sharedSubscriptions:
    type: "boolean"
    default: false
  clientAuthentication:
    type: "enum"
    values: ["x509", "entra-id", "oauth-jwt", "webhook"]
    default: "x509"
  routingToTopic:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/components/azure-event-grid-mqtt
