Glossary · PubSub

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
The mistake people make: Treating Sparkplug as a replacement for an information model. Flattening a Machinery or MachineTool address space into Sparkplug metric names discards the type information, the modelling rules and the units, and no consumer can recover them from the metric name. If semantics are the reason you chose OPC UA, do not throw them away at the broker.

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.

Free download
OPC UA Server Acceptance Test Pack
A 40-check acceptance test you run against a vendor's server before commissioning sign-off. Weighted scoring, three hard gates, and a one-page verdict for the supplier meeting.
Get the free test pack →
Free, no course, no login