Industrial MQTT Integration: Decide Whether Sparkplug Supplies the Missing Data Contract
Two products supporting MQTT can exchange messages without agreeing on what those messages mean. Before connecting a new machine gateway to an industrial host application, identify the missing contract: naming, payload representation, metric interpretation, and the way the host learns that data is no longer current. A broker connection alone does not answer those questions.
Sparkplug is one option for standardizing that contract. This article uses Eclipse Sparkplug 3.0.0 and proposes an interoperability assessment. It does not claim that a tested product combination is compatible, that every MQTT deployment needs Sparkplug, or that adopting a specification automatically completes an industrial integration.

Separate transport compatibility from application compatibility
The Eclipse Sparkplug FAQ explains that MQTT does not prescribe an application topic namespace or payload encoding. Sparkplug adds an OT-oriented namespace, payload definition, and session-state model rather than changing MQTT itself.
For a small integration with a deliberately owned schema, a custom contract may be sufficient. The obligation then remains with the participants to specify it, maintain compatible implementations, and handle changes. Where multiple equipment suppliers and host applications must interoperate, a shared industrial contract can reduce the amount of privately invented behavior each pair must negotiate.
That is a selection question, not a reason to relabel arbitrary JSON messages as Sparkplug. Both ends need the expected behavior. An ordinary subscriber that only extracts one numeric field is not equivalent to a host that understands the lifecycle of the advertised metrics.
Evaluate the gateway and the host together
The Sparkplug 3.0.0 specification distinguishes MQTT servers, edge nodes, attached devices, and host applications. Its birth and death messages describe connection-related state. When an edge node is declared offline, its associated devices are also considered offline and the session's metrics become stale.
Use that distinction in a hypothetical procurement review. A gateway may continue to send a temperature value while the intended host fails to interpret device availability correctly. Alternatively, the host may recognize the payload but rely on manually configured names that no longer match the deployed identity scheme. Neither outcome is resolved by showing that the broker received a publish.
Specify which side owns group, node, and device identity. Document how equipment values map into the chosen metric definitions and how the host presents unavailable data. Preserve the distinction between a historical last value and an eligible current observation.
Ask what server capability is actually required
The specification separately describes a Sparkplug-compliant MQTT server and a Sparkplug-aware server. The latter adds handling for stored birth information. Do not assume that every standard MQTT broker provides those additional capabilities, or that an architecture requires them merely because a supplier used the word Sparkplug.
Review the actual edge-node and host requirements with the proposed server configuration. Keep transport security and topic authorization as explicit deployment requirements; a shared application format does not authorize every publisher to impersonate another machine or send control messages.
Qualify lifecycle behavior, not just a sample payload
In an isolated fixture, connect one representative edge node and the intended host. Confirm that the host discovers or receives the expected metric definitions, interprets their types correctly, and associates them with the intended equipment identity. Record the versions and roles of the participating implementations.
Then exercise a clean disconnect, an interrupted connection, and reconnection using the vendors' supported test procedures. Observe how the host changes data validity and reconstructs its view. These are proposed acceptance cases, not a claim that a specific product passes them. Avoid driving real equipment while evaluating command behavior.
Include one deliberately unsupported or mismatched representation and require an understandable failure rather than a plausible but incorrectly decoded value. Also identify which future changes would require renewed compatibility testing, such as a gateway replacement or a modified metric definition.
The decision should state which interoperability obligations Sparkplug supplies and which remain product-specific. That gives the industrial team a meaningful acceptance contract instead of treating “MQTT supported” as proof that the complete data solution is ready.