Standard mechanism or best practice for versioning of entities modeled in XDM
- Dominant language
- JavaScript
- Stars
- 266
- Forks
- 380
- Avg merge
- 5d 8h
- Merged PRs (30d)
- 9
Description
## What are the schemas that are affected by the issue
All schemas where the entities that are modeled can be versioned
## What are examples of products that are impacted by the issue
Any product that versions any of their entities.
## Problem / Request
XDM has thought a lot about versioning of XDM schemas themselves, but there is also a need for ways to represent versions for the things modeled by XDM schemas. I'm opening this ticket here to capture this discussion.
An example of something that could need versioning is an audience Segment. Segments have IDs, but that isn't necessarily the thing that uniquely identifies the state of a segment. Segments can be edited by users and have their predicates/rules change. This could change the makeup of the audience of the segment over time. XDM has a way of recording segment membership today, but we should have a standard way of storing the version of the segment along with the ID.
Some possible approaches:
- Have a version property in addition to the id property
- Embed the version information in the URI, possibly by using a parameter like `;v=`
I understand this might be outside of the purview of XDM itself, but it would be good to at least have a recommendation for a best practice, otherwise people will keep inventing different ways of doing the same thing.
Also, doing this in a standard way allows tooling to be enhanced to be able to deal with versions.
cc: @fmeschbe, @chrisdegroot
Contributor guide
Research direction
No files or tests are named. Start by reviewing the XDM schema conventions and the existing segment-membership representation, then assess the two proposed approaches against products that version entities. Done means an agreed, documented best practice or scope decision for representing entity versions.
Written by the indexing model from the issue text.
Assessment
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100