Overview / Start here

MQTT coverage

Check MQTT version, QoS, transport, metadata and restart behavior against the current declared profile.

Current-source profile; installed version must match

Match the exact requirements of your clients and installed image. The current source implements MQTT 3.1.1 QoS 0/1/2 and a selected MQTT 5 QoS 0/1 profile. Full MQTT conformance is not claimed. Public facts are available as JSON; the running identity and image remain authoritative for deployment decisions.

Transports

Free includes TCP/TLS. Pro and higher add secure WebSocket. Max and Enterprise add their selected device/industrial profiles. Connection/TLS lifecycle stays with nginx; broker state is shared through the local authority process.

QoS and sessions

Requirement Current-source behavior
MQTT 3.1.1 QoS 0/1 Publish/subscribe, bounded outbound ownership and acknowledgements.
MQTT 3.1.1 QoS 2 Inbound/outbound PUBREC/PUBREL/PUBCOMP, Wills and session/recovery paths within configured bounds.
MQTT 5 QoS Advertised ceiling defaults to 1; requested subscription QoS 2 can be granted 1. QoS 2 publish/Will is outside the selected MQTT 5 profile.
Retain and Will Retained deletion, Will lifecycle and selected MQTT 5 metadata/Will Delay behavior.
Sessions Live reconnect state in memory profiles; PostgreSQL-backed restart recovery when the durable profile is selected.
Shared subscriptions Selected $share/{group}/{filter} behavior with explicit ACL and retained-delivery rules.

Free’s live_fast profile now tracks outbound ownership, PUBACK, Receive Maximum and persistent reconnect state in memory. It loses that state on process/node restart. Use PostgreSQL-backed Pro or higher when restart recovery is required.

MQTT 5

Supported selected fields include Session Expiry, Receive Maximum, Maximum Packet Size, message expiry, payload-format/content-type metadata and subscription No Local/Retain As Published/Retain Handling options. Current source preserves ordered repeated PUBLISH/Will User Properties, Response Topic and Correlation Data across their declared live/store/retry/recovery paths, with 1024-byte aggregate encoded application metadata bounds.

CONNECT/SUBSCRIBE/UNSUBSCRIBE and selected control-packet User Properties have their own validated/discarded handling. Distinguish accepted metadata from application metadata that is forwarded. Topic-alias negotiation differs by transport; inspect the actual CONNACK limits and the installed profile.

Enhanced authentication/AUTH and Subscription Identifier are unavailable. Reason-code direction, property cardinality and configured bounds are enforced before broker side effects. Treat errors as exact protocol/admission outcomes.

Payload and filter bounds

Inline payloads cover up to 512 bytes. Larger supported messages use bounded, pointer-free payload references and verified chunks. The default payload limit is 65,536 bytes and the hard payload ceiling is 262,144 bytes. Packet limits and encoded metadata also apply; match the selected configuration.

SUBSCRIBE/UNSUBSCRIBE allow up to 32 ordered filters, 256 UTF-8 bytes per filter and 2048 aggregate filter bytes. Validate topic/ACL behavior against the source broker before cutover.

Verification scope

Current-source qualification and historical installed evidence have distinct subjects. Older images may lack later protocol corrections. Test the clients, transports, payload sizes, session transitions and failure cases that your application actually requires. Production-use permission adds no protocol, durability or throughput guarantee.

Use the migration skills for effective configuration, behavior mapping, candidate tests, cutover and rollback. Broker acknowledgements and destination commitment must each meet the application’s delivery contract.

Implementation authority

This page is a customer-oriented guide. The source contract remains authoritative for exact behavior and release evidence.

release/mqtt-support-matrix.json