The external unique identifier id shall uniquely identify an entity instance.
It is used as an external identifier to communicate with other systems.
It should always be visible outside the system and is used in any public API.
Try to have exactly one external identifier per object to communicate with external systems.
This restriction is a corollary of the rule stating an instance is owned by exactly one system.
This system is the one defining and managing the external unique identifiers for the related instances.
You should clearly define the owning system for the external identification scheme.
This information shall be documented and accessible to all involved parties.
This process is part of the enterprise architecture activities of your ecosystem.
External identifier ownership is often a murky situation when working with legacy systems.
You often have multiple sources of external identifiers, sometimes overlapping and sometimes not covering all instances.
You have to formulate a long-term strategy to clean up your landscape and handle the problems until these cleanup activities are completed.
By handling, we mean administrative and import rules matching the various external identifiers to the same object.
One possible solution is to use tags.
Store externally defined identifiers as tags.
Document these tags as specific for the external system.
This approach scales to multiple external identifiers and multiple systems managing the same external identifier.
So you have a scalable approach and do not pollute your domain model with spurious information defined in external systems.
Upon completion of the refactoring activities, these tags document historical information and could safely be removed.
Multiple external object identifiers imply the existence of mapping functions to identify the object referenced.
Because the ownership of external identifiers is outside your system, you are dependent on these systems and have to hope they are good citizens.
The key rule of good systems is that they never change external identifiers.
As soon as you modify identifiers, they are, per definition, no more real identifiers.