Graph/Network Database Design Patterns (G/N-DDP) - Versioning
  • versioning graph/network data
  • the main idea is to separate structure from state (note: structure is tied to identity)

Versioning Graph Data

a graph database contains 2 types of building blocks:

  • nodes/entities
  • edges/relationships

thus, versioning graph data essentially means versioning these 2 types of data

1 - Versioning Nodes

split the node data into 2 disjoint datasets:

  • node identity
  • node state


node-versioning.drawio

2 - Versioning Edges

split the relationship data into 2 disjoint datasets:

  • edge identity - starting-node-id or edge-id
  • edge state - may include starting-node-id, ending-node-id, and any other state properties of the relationship


edge-versioning.drawio

Resources