To what degree should entities be immutable?
The 12006-3 standard leaves some room for interpretation regarding how to handle versioning of entities. "Experts decide" if a change shall change the minor and major version number.
When implementing caching/sync/reference functionality it is vital to have a fixed ruleset how and when changes are handled.
- Strict versioning (immutable entities) will make change management more complex (the same concept will be defined in multiple entities (records))
- UniqueId = immutable identifier
- Flexible versioning will force implementations to create super keys with more attributes
- Unique + MajorVersion + MinorVersion = immutable identifier
Even with strict versioning some attributes should not be subject to version changes, e.g. "Status" attribute of xtd object.
Todo:
-
Decide how to use https://schemas.infopack.io/ivl/xtdobject.1.schema.json#/properties/ReplacedObjects
in conjunction withhttps://schemas.infopack.io/ivl/xtdobject.1.schema.json#/properties/Status
-
Decide if change of attributes https://schemas.infopack.io/ivl/xtdobject.1.schema.json#/properties/DeprecationExplanation
andhttps://schemas.infopack.io/ivl/xtdobject.1.schema.json#/properties/Status
should trigger version change
Edited by Johan Asplund