Nodes are identified by their key. Keys remain stable because the key is generated from properties that BMC Discovery has discovered about the real world entity.
The key attribute
All inferred and pattern management node kinds have a key attribute. The key attribute contains the system's best attempt at generating a unique key to identify the real-world entity represented by the node.
The key attribute is necessary to compare and reconcile the data with external systems. The internal node ID cannot be used for this purpose because it is an identifier for the node stored in the datastore, not for the entity it represents. In certain circumstances, the node representing a real-world entity can be removed, and a new one created later. In that situation, the node and its node ID have changed, even though the real-world entity has not changed.
The key attribute is defined to be a text field. The mechanism for generating a key varies for different kinds of nodes, and even for different cases of a particular node kind.
Unique datastore identifier
There are several things that can be unique about nodes. An example of something that is unique is the internal node ID. The node ID is a unique datastore identifier for that node in the datastore. All nodes in the datastore have a unique identifier that is assigned when the node is created.
This is an internal identifier that is used as an index by the database. It can be used to uniquely identify a node, though you should note that it is not persisted on destruction and creation of a new node which represents the corresponding real-world entity.
For this reason, node IDs are not guaranteed to remain stable over time. If you need to identify a node uniquely over time in order to effect an integration with any external system, BMC strongly recommends that you use the key attribute of the node, rather than the node ID.
For details on what makes a host unique, see Host node.