adobe / adobe/xdm

Standard mechanism or best practice for versioning of entities modeled in XDM

Open
#480 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.