Repository navigation
[#598] Implemented major topic namespace changes for v4 - #617
Merged
Merged
Conversation
ibinshtok
approved these changes
Aug 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adopt #598: Topic Prefix + Expanded MQTT Topic (device_tokens) for Sparkplug 4
Implements the topic-namespace changes agreed for #598.
Topic structure
Old:
namespace/group_id/message_type/edge_node_id/[device_id]New:
[topic_prefix/]namespace/message_type/edge_node_id/[device_tokens]spCv1.0namespace element (namespace-root grouping and ACL scoping). The STATE topic remains unprefixed.device_idgeneralized todevice_tokens— one or more trailing levels that identify a Sparkplug Device on the 'D' message types, and that may also relocate leading folders of a metric name onto the topic. 'N' message types never carrydevice_tokens.New concepts (defined normatively)
descriptor_seq— a per-Sparkplug-Descriptor payload sequence number (in addition to the Edge-Node-wideseq) so a consumer can detect a gap on one specific Descriptor's BIRTH/DATA stream.spCv1.0(protobuf) andspJv1.0(JSON, forthcoming).Scope
Chapters updated: Introduction, Topics, Operational Behavior, Payloads, Security (ACL example), HA, Conformance, Appendix A, plus the three metric-structure diagrams. Examples reworked to a Unified Namespace / ISA-95 style (
Acme/Dublin/Packaging/EdgeNode1/Filler). Editorial cleanup: em-dashes and stray semicolons removed from prose; "broker" changed to "MQTT Server".TCK
Monitor.javaupdated to the renamed statement IDs and section anchors. Usages of the removeddevice_iduniqueness/duplication statements are stubbed with// TODO(#598).AwareBrokerTest.javare-pointed toCONFORMANCE_MQTT_AWARE_BASICto fix a pre-existing conformance-chapter staleness (unrelated to Sparkplug 4: Expanded MQTT Topic : Move "group" to be ahead of spBv1.0 #598) so the module compiles.