Versioning Architecture

Last modified by Robert Schaub on 2025/12/24 20:34

Versioning Architecture

This diagram shows how each entity type maintains its version history with parent-child relationships.

Versioning Architecture Explanation

Version Chains:

  • Each entity type (Claim, Scenario, Evidence, Verdict) maintains independent version history
  • ParentVersionID creates directed acyclic graph (DAG) of changes
  • Arrow direction: Old version → New version (evolution over time)

Version Metadata (stored with every version):

  • VersionID: Unique identifier for this specific version
  • ParentVersionID: Links to previous version (null for v1)
  • AuthorType: Human, AI, or ExternalNode
  • Timestamp: Creation datetime (UTC)
  • JustificationText: Brief explanation of changes

Entity Relationships (dotted lines):

  • Claims have Scenarios: One claim can have multiple scenario interpretations
  • Scenarios use Evidence: Each scenario version references specific evidence versions
  • Scenarios produce Verdicts: Each scenario version gets verdict based on evidence

Branching Support:

  • In federated environments, versions can branch:
      - Node A: Version 1 → Version 2a
      - Node B: Version 1 → Version 2b (parallel branch)
  • Both branches preserved for conflict resolution

Immutability:

  • Versions never deleted, only superseded
  • Historical versions remain accessible
  • Complete audit trail for all changes
graph TD
    subgraph ClaimVersioning[Claim Versioning]
        C1[Claim v1]
        C2[Claim v2]
        C3[Claim v3]
        C1 --> C2
        C2 --> C3
    end
    
    subgraph ScenarioVersioning[Scenario Versioning]
        S1[Scenario v1]
        S2[Scenario v2]
        S1 --> S2
    end
    
    subgraph EvidenceVersioning[Evidence Versioning]
        E1[Evidence v1]
        E2[Evidence v2]
        E3[Evidence v3]
        E1 --> E2
        E2 --> E3
    end
    
    subgraph VerdictVersioning[Verdict Versioning]
        V1[Verdict v1]
        V2[Verdict v2]
        V3[Verdict v3]
        V1 --> V2
        V2 --> V3
    end
    
    ClaimVersioning -.->|has| ScenarioVersioning
    ScenarioVersioning -.->|uses| EvidenceVersioning
    ScenarioVersioning -.->|produces| VerdictVersioning
    
    Note[Each Version Stores:
- VersionID
- ParentVersionID
- AuthorType
- Timestamp
- JustificationText] style Note fill:#f9f9f9,stroke:#333,stroke-width:2px