{
  "id": "type-h14",
  "revision": "ea48fac4abcc35991a9effb6a3328bc1e2087d34862d162e80c9be173f9d7c76",
  "regions": [
    {
      "id": "zone-a",
      "label": "Zone A",
      "parent": null
    },
    {
      "id": "zone-b",
      "label": "Zone B",
      "parent": null
    },
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "web",
      "label": "Web",
      "parent": null
    },
    {
      "id": "control-plane",
      "label": "Control plane",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "leader",
      "label": "Write leader",
      "kind": "N21",
      "region": "zone-a",
      "ports": [
        {
          "id": "member",
          "profile": "P19",
          "contract": "ReplicaMembershipEpochV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "follower",
      "label": "Read follower",
      "kind": "N25",
      "region": "zone-b",
      "ports": [
        {
          "id": "member",
          "profile": "P19",
          "contract": "ReplicaMembershipEpochV1",
          "polarity": "Neutral"
        },
        {
          "id": "read",
          "profile": "P02",
          "contract": "ReadAtRequiredPositionV1",
          "polarity": "Offer"
        },
        {
          "id": "placement",
          "profile": "P19",
          "contract": "ReplicaPlacementV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "router",
      "label": "Read consistency router",
      "kind": "N03",
      "region": "server",
      "ports": [
        {
          "id": "membership",
          "profile": "P19",
          "contract": "ReplicaMembershipEpochV1",
          "polarity": "Neutral"
        },
        {
          "id": "read",
          "profile": "P02",
          "contract": "ReadAtRequiredPositionV1",
          "polarity": "Offer"
        },
        {
          "id": "follower",
          "profile": "P02",
          "contract": "ReadAtRequiredPositionV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "client",
      "label": "Read caller",
      "kind": "N19",
      "region": "web",
      "ports": [
        {
          "id": "read",
          "profile": "P02",
          "contract": "ReadAtRequiredPositionV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "pool",
      "label": "Replica placement pool",
      "kind": "N28",
      "region": "control-plane",
      "ports": [
        {
          "id": "placement",
          "profile": "P19",
          "contract": "ReplicaPlacementV1",
          "polarity": "Neutral"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "group",
      "kind": "H14",
      "incidences": [
        {
          "node": "leader",
          "port": "member",
          "role": "leader",
          "ordinal": 0
        },
        {
          "node": "follower",
          "port": "member",
          "role": "follower",
          "ordinal": 0
        },
        {
          "node": "router",
          "port": "membership",
          "role": "coordinator",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "read",
      "kind": "H05",
      "incidences": [
        {
          "node": "client",
          "port": "read",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "router",
          "port": "read",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "follower",
      "kind": "H05",
      "incidences": [
        {
          "node": "router",
          "port": "follower",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "follower",
          "port": "read",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "place",
      "kind": "H21",
      "incidences": [
        {
          "node": "follower",
          "port": "placement",
          "role": "subject",
          "ordinal": 0
        },
        {
          "node": "pool",
          "port": "placement",
          "role": "host",
          "ordinal": 0
        }
      ]
    }
  ]
}
