Catalogue / Operations

Coordination service

opscoordination-service

Strongly consistent service for metadata, locks, discovery and placement.

Category
Operations
Properties
5
Components
18
Rules
2
Properties · 5 defined by this kind

A node of this kind resolves each property from its own props, then the component's defaults, then the default below.

propertytypevaluesrequireddefault
consensusenumnone | raft | paxos | zabnonone
managedboolean—nofalse
nodesinteger—no—
replicatedboolean—nofalse
roleenummetadata | lock | discovery | placement | sharding | leader-election | configyes—
Rules for this kind · 2
shared-dependency-without-redundancy

The design requires redundant discovery, but this DNS or coordination service, which everything depends on, runs on a single provider or a single replica. Its failure is the whole system's failure.

  • — all of these hold:
  • — the design requirement `availability.discoveryRedundant` is true
  • — any of these hold:
  • — the node's `redundantProviders` is false
  • — the node's `replicated` is false
stateful-engine-pinned-to-single-zone

A matching engine, coordination service or event store living in exactly one availability zone, with no failover and no replication, is lost with that zone. Everything that depends on it stops with it.

  • — all of these hold:
  • — the node sits inside exactly 1 availability-zone group
  • — any of these hold:
  • — the node's `failover` is "none"
  • — the node's `replicated` is false
  • — the node's `replication` is "none"
Components · 18
Source
# yaml-language-server: $schema=../schema/kind.schema.json
# Small strongly consistent service for cluster metadata, locks, discovery, placement and leader election (ZooKeeper, etcd, Consul, Helix).
# Absorbs control-plane-coordinator, sharding-coordinator and service-registry via role.
schemaVersion: "1"
type: "kind"
id: "coordination-service"
category: "ops"
properties:
  role:
    type: "enum"
    values: ["metadata", "lock", "discovery", "placement", "sharding", "leader-election", "config"]
    required: true
  consensus:
    type: "enum"
    values: ["none", "raft", "paxos", "zab"]
    default: "none"
  replicated:
    type: "boolean"
    default: false
  nodes:
    type: "integer"
  managed:
    type: "boolean"
    default: false

The same page as markdown, for an agent: /catalogue/kinds/coordination-service.md