Interface used to define data objects that can be versioned.


The IVersioned interface allows you to define data objects that can be versioned.

Important points

  • Versioning is often used as an optimistic concurrency mechanism.
  • The version doesn’t have to be a number, but it is recommended to use sequential values to determine if one object has a newer or older version than another one.
  • It is common to use the time of change as the object version.



The object’s version.

version: string


export class MyData implements IStringIdentifiable, IVersioned {
    public id: string;
    public field1: string;
    public field2: number;
    public version: string;
public updateData(correlationId: string, item: MyData): void {
    if (item.version < oldItem.version) {
        throw new ConcurrencyException(null, "VERSION_CONFLICT", "The change has older version stored value");