Sparkplug B
Sparkplug B is an Eclipse Foundation specification that adds a defined topic namespace, a Protobuf payload and strict connection-state handling to plain MQTT. It is not part of IEC 62541. It overlaps OPC UA PubSub over MQTT on transport and payload economy, and does not overlap it at all on semantics.
What Sparkplug actually adds to MQTT
Three things. A fixed topic structure, spBv1.0 followed by group id, message type, edge node id and optional device id. A Protobuf payload with named metrics that can be replaced by integer aliases after the first message to cut bandwidth. And a state discipline built on MQTT Last Will and Testament: NBIRTH and DBIRTH announce a node or device and enumerate every metric it will ever publish, NDATA and DDATA carry changes, NDEATH and DDEATH mark loss, and a broker-side STATE topic tracks the primary application. The current release is Sparkplug 3.0.0.
Where it overlaps OPC UA PubSub
Both are publish-subscribe over a broker, both are compact and binary, and both solve the firewall problem the same way, with outbound connections only. A birth certificate plays the same role as a PubSub DataSetMetaData message, and a Sparkplug metric alias plays the same role as a UADP field index. If you evaluate the two on bandwidth and broker mechanics, they land in much the same place.
Where it does not overlap at all
Sparkplug has templates, datasets and metric properties, but no standard industry information models. There is no Machinery, no MachineTool, no PackML, no browsable typed address space, no methods, no alarms and conditions model, no history services. A Sparkplug metric name is whatever the integrator typed. That is the whole difference: OPC UA's asset is semantics, Sparkplug's asset is connection-state discipline and payload economy.
The architecture that actually ships
The dominant 2026 pattern is OPC UA southbound for semantics and MQTT northbound for the namespace, and both the umati dashboard client and OPC Publisher implement exactly that. Choose Sparkplug when the northbound consumers are SCADA and MQTT-native tooling that already speak it. Choose OPC UA PubSub over MQTT with JSON when you want one standards family end to end and want DataSetMetaData rather than birth certificates as your schema. Running both in parallel on the same broker is common and is not a failure.
Example
The two topic shapes side by side
Sparkplug B
spBv1.0/Plant1_Line3/NBIRTH/edge01 # enumerates every metric, with aliases
spBv1.0/Plant1_Line3/DDATA/edge01/press # Protobuf, aliases only
spBv1.0/Plant1_Line3/NDEATH/edge01 # published by the broker as the LWT
OPC UA PubSub over MQTT (topic derived from browse path, DataSetRouting UseBrowseNames)
plant1/line3/press/Force
plant1/line3/press/$metadata # DataSetMetaData on its own topic
Defined in: Not an IEC 62541 part. Eclipse Sparkplug 3.0.0; compare with Part 14 - PubSub.
Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.