All devices in Thing Registries are referenced using their XMPP address, their optional node identity, source identity, and partition. If the last three are not provided, they are assumed to be blank. The ThingRegistryClient that we use to interact with a Thing Registry has overloaded versions of all methods accepting embedded node references. This includes the RegisterThing, UpdateThing, Remove, Unregister, and Disown methods.
When we claim a device, we send only metadata to the registry. But the response contains a Node property that together with the JID property identifies the corresponding node. In the same way, the Claimed, Removed, and Disowned events contain a Node reference that points to the corresponding embedded node, if not empty. When searching for things using the Search method, each SearchResultThing found also contains a Node reference.
Consider the following example: in a building there might be a PLC installed with many input/output modules. These modules might be shared by many of the apartments in the building. If the property manager wants to allow the residents to control their input/output modules, it makes sense to provision each embedded node by itself. This would allow each resident to be able to control their modules, without letting them control the modules of their neighbors, except with their explicit permission.