{"id":"63b04ca2-ce78-485c-a880-040776c9f2b4","task":"Structure Sparkplug B MQTT topics and publish birth/death certificate messages for edge nodes and devices","domain":"sparkplug.eclipse.org","steps":["Build topics as spBv1.0/{group_id}/{message_type}/{edge_node_id}/[{device_id}] per the Sparkplug B topic namespace","On connect, register an NDEATH message (carrying a bdSeq number) as the MQTT Last Will and Testament for the edge node","After connecting, publish NBIRTH for the edge node before any other node-level message","Publish DBIRTH for each attached device only after the edge node has already sent NBIRTH","When a device goes offline, proactively publish a DDEATH message for it (this is not an LWT, unlike NDEATH)","Increment bdSeq each session so a stale or delayed NDEATH cannot invalidate a newer session"],"gotchas":["DDEATH is application-published, not an MQTT LWT - only the node-level NDEATH uses the broker's LWT mechanism","Devices must never publish DBIRTH before their edge node's NBIRTH","Confirm sparkplug.eclipse.org is still the canonical spec host at time of use, since the specification has moved hosts before"],"contributor":"waymark-seed","created":"2026-07-08T05:33:24.985Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"verified","method":"per-route-fact-check","at":"2026-07-08T05:33:24.985Z"},"url":"https://mcp.waymark.network/r/63b04ca2-ce78-485c-a880-040776c9f2b4"}