{
  "id": "distributed-actors",
  "revision": "b2f3314335b1265d88480ce29ed2a486622b73270072b98f761b71365ebeaf89",
  "regions": [
    {
      "id": "control",
      "label": "Control plane"
    },
    {
      "id": "data",
      "label": "Data plane"
    }
  ],
  "nodes": [
    {
      "id": "registry",
      "label": "Placement registry",
      "kind": "N21",
      "region": "control",
      "ports": [
        {
          "id": "map",
          "profile": "P01",
          "contract": "PlacementMapV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "router",
      "label": "Key router",
      "kind": "N22",
      "region": "control",
      "ports": [
        {
          "id": "placement",
          "profile": "P01",
          "contract": "PlacementMapV1",
          "polarity": "Require"
        },
        {
          "id": "a",
          "profile": "P02",
          "contract": "ActorCommandV1",
          "polarity": "Require"
        },
        {
          "id": "b",
          "profile": "P02",
          "contract": "ActorCommandV1",
          "polarity": "Require"
        },
        {
          "id": "keyspace",
          "profile": "P24",
          "contract": "KeyspaceRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "supervisor",
      "label": "Actor supervisor",
      "kind": "N05",
      "region": "data",
      "ports": [
        {
          "id": "supervisor",
          "profile": "P24",
          "contract": "SupervisorRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "a",
      "label": "Actor shard A",
      "kind": "N05",
      "region": "data",
      "ports": [
        {
          "id": "mailbox",
          "profile": "P02",
          "contract": "ActorCommandV1",
          "polarity": "Offer"
        },
        {
          "id": "log",
          "profile": "P02",
          "contract": "ActorAppendV1",
          "polarity": "Require"
        },
        {
          "id": "range",
          "profile": "P24",
          "contract": "RangeRefV1",
          "polarity": "Neutral"
        },
        {
          "id": "activation",
          "profile": "P24",
          "contract": "ActivationRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "b",
      "label": "Actor shard B",
      "kind": "N05",
      "region": "data",
      "ports": [
        {
          "id": "mailbox",
          "profile": "P02",
          "contract": "ActorCommandV1",
          "polarity": "Offer"
        },
        {
          "id": "log",
          "profile": "P02",
          "contract": "ActorAppendV1",
          "polarity": "Require"
        },
        {
          "id": "range",
          "profile": "P24",
          "contract": "RangeRefV1",
          "polarity": "Neutral"
        },
        {
          "id": "activation",
          "profile": "P24",
          "contract": "ActivationRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "log",
      "label": "State log",
      "kind": "N24",
      "region": "data",
      "ports": [
        {
          "id": "appendA",
          "profile": "P02",
          "contract": "ActorAppendV1",
          "polarity": "Offer"
        },
        {
          "id": "appendB",
          "profile": "P02",
          "contract": "ActorAppendV1",
          "polarity": "Offer"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "placement",
      "kind": "H02",
      "incidences": [
        {
          "node": "registry",
          "port": "map",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "router",
          "port": "placement",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "a",
      "kind": "H05",
      "incidences": [
        {
          "node": "a",
          "port": "mailbox",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "router",
          "port": "a",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "b",
      "kind": "H05",
      "incidences": [
        {
          "node": "b",
          "port": "mailbox",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "router",
          "port": "b",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "logA",
      "kind": "H05",
      "incidences": [
        {
          "node": "log",
          "port": "appendA",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "a",
          "port": "log",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "logB",
      "kind": "H05",
      "incidences": [
        {
          "node": "log",
          "port": "appendB",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "b",
          "port": "log",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "partition",
      "kind": "H15",
      "incidences": [
        {
          "node": "router",
          "port": "keyspace",
          "role": "router",
          "ordinal": 0
        },
        {
          "node": "a",
          "port": "range",
          "role": "shard",
          "ordinal": 1
        },
        {
          "node": "b",
          "port": "range",
          "role": "shard",
          "ordinal": 2
        }
      ]
    },
    {
      "id": "supervision",
      "kind": "H18",
      "incidences": [
        {
          "node": "supervisor",
          "port": "supervisor",
          "role": "supervisor",
          "ordinal": 0
        },
        {
          "node": "a",
          "port": "activation",
          "role": "child",
          "ordinal": 1
        },
        {
          "node": "b",
          "port": "activation",
          "role": "child",
          "ordinal": 2
        }
      ]
    }
  ]
}
