MQTT broker
Pub/Sub topicmqtt-broker
Topic-based publish/subscribe broker for devices (Mosquitto, EMQX, HiveMQ, cloud IoT cores).
- Provider
- default
- Kind
- Pub/Sub topic
- Category
- Messaging
- Official docs
- https://mqtt.org/mqtt-specification/
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| delivery | enum | at-most-once | at-least-once | exactly-once | yes | — | ▸ at-most-once |
| managed | boolean | — | no | false | inherited |
| ordering | enum | none | per-key | no | none | ▸ per-key |
| persistentSessions | boolean | — | no | false | inherited |
| qos | integer | — | no | 0 | inherited |
| replay | boolean | — | no | false | ▸ false |
| topicPerEventType | boolean | — | no | true | inherited |
Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.
pubsub-replay-required
The design declares that consumers must be able to replay history. A fan-out topic that does not retain messages cannot deliver that.
- — all of these hold:
- — the design requirement `messaging.replay` is true
- — the node's `replay` is false
nodes:
- { id: "mqtt-broker", component: "mqtt-broker" }EventBridgealibaba-eventbridgeAmazon EventBridgeaws-eventbridgeAmazon SNSsnsAzure Event Gridazure-event-gridAzure Event Grid MQTT Brokerazure-event-grid-mqttEclipse MosquittomosquittoNanoMQnanomqGeneric Pub/Sub topicpubsub-topicRedis Pub/Subredis-pubsubEventarcgoogle-eventarcGoogle Cloud Pub/Subgoogle-pubsubOCI Eventsoci-events
# yaml-language-server: $schema=../../schema/component.schema.json # MQTT broker (Mosquitto, EMQX, HiveMQ, IoT Core): topic fan-out for devices. QoS 0 is the wire default, # so delivery is at-most-once until the client asks for QoS 1 or 2. schemaVersion: "1" type: "component" id: "mqtt-broker" kind: "pubsub-topic" provider: "default" docs: "https://mqtt.org/mqtt-specification/" defaults: delivery: "at-most-once" ordering: "per-key" replay: false properties: qos: type: "integer" default: 0 persistentSessions: type: "boolean" default: false