Skip to content

Instantly share code, notes, and snippets.

@Nezteb
Last active September 16, 2025 21:29
Show Gist options
  • Save Nezteb/7d61ab5e35ddb98d07f7f82065bd7780 to your computer and use it in GitHub Desktop.
Save Nezteb/7d61ab5e35ddb98d07f7f82065bd7780 to your computer and use it in GitHub Desktop.
---
config:
  theme: 'default'
---
%% Diagram in progress
%% Refs:
%% - https://jepsen.io/consistency/models
%% - https://antithesis.com/resources/reliability_glossary/#consistency-models
%% 
%% Note: "strong" ~ "strict"
%% 
graph LR
    classDef red fill:#ffcccc
    classDef green fill:#ccffcc
    classDef yellow fill:#ffffcc

    subgraph "Consistency Models Hierarchy"
        %% Unavailable models (red)
        SS["Strict Serializable<br/>(Unavailable)"]
        SSS["Strict Session Serializable<br/>(Unavailable)"]
        SSI["Strict Snapshot Isolation<br/>(Unavailable)"]
        SSSI["Strict Session Snapshot Isolation<br/>(Unavailable)"]
        S["Serializable<br/>(Unavailable)"]
        L["Linearizable<br/>(Unavailable)"]
        RR["Repeatable Read<br/>(Unavailable)"]
        SI["Snapshot Isolation<br/>(Unavailable)"]
        CS["Cursor Stability<br/>(Unavailable)"]
        SEQ["Sequential<br/>(Unavailable)"]

        %% Sticky Available models (yellow)
        CC["Causal<br/>(Sticky Available)"]
        PRAM["PRAM<br/>(Sticky Available)"]
        RYW["Read Your Writes<br/>(Sticky Available)"]

        %% Total Available models (green)
        MAV["Monotonic Atomic View<br/>(Total Available)"]
        RA["Read Atomic<br/>(Total Available)"]
        RC["Read Committed<br/>(Total Available)"]
        RU["Read Uncommitted<br/>(Total Available)"]
        MR["Monotonic Reads<br/>(Total Available)"]
        MW["Monotonic Writes<br/>(Total Available)"]
        WFR["Writes Follow Reads<br/>(Total Available)"]
        EC["Eventual Consistency<br/>(Total Available)"]
    end

    %% Color coding for CAP properties
    %% CP (less A)
    class SS,SSS,SSI,SSSI,S,L,RR,SI,CS,SEQ red
    %% AP (less C)
    class MAV,RA,RC,RU,MR,MW,WFR,EC green
    %% SA (CP ~ AP)
    class CC,PRAM,RYW yellow

    %% Relationships between models (stronger than)
    SS -.stronger than.-> SSS
    SS -.stronger than.-> L
    SSS -.stronger than.-> S
    SSI -.stronger than.-> SI
    SSSI -.stronger than.-> SI
    S -.stronger than.-> RR
    S -.stronger than.-> SI
    RA -.stronger than.-> MAV
    L -.stronger than.-> SEQ
    SEQ -.stronger than.-> CC
    RR -.stronger than.-> CS
    SI -.stronger than.-> MAV
    RR -.stronger than.-> MAV
    CS -.stronger than.-> RC
    MAV -.stronger than.-> RC
    RC -.stronger than.-> RU
    CC -.stronger than.-> WFR
    CC -.stronger than.-> PRAM
    PRAM -.stronger than.-> MR
    PRAM -.stronger than.-> MW
    PRAM -.stronger than.-> RYW
    MR -.stronger than.-> EC
    MW -.stronger than.-> EC
    WFR -.stronger than.-> EC
    MAV -.stronger than.-> EC

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment