Stateful node without zone redundancy

errorstateful-node-without-zone-redundancy

A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.

Severity
error
Selects
every node in category compute
Components in scope
648
What it checks

It looks at every node in category compute, and fires when:

  • — all of these hold:
  • — the node's `stateless` is false
  • — the node sits inside exactly 1 availability-zone group
  • — this does not hold:
  • — the node sits inside at least one cell group
Message
Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

{{node.id}} style paths are filled in from the node, the edge or the design the finding is about.

Applies to · 648 components

Categories: compute

Tripped by · 4

Reference designs whose broken twin names this rule in its header. The gate reads the same header, and fails when a rule no design trips.

Source
# yaml-language-server: $schema=../schema/rule.schema.json
# A stateful compute node pinned to exactly one availability zone disappears with that
# zone, and its state with it. Nodes inside a cell group are exempt: in a cell
# architecture the cell is deliberately single-zone and redundancy comes from the other
# cells.
# Tripped by: designs/doordash-delivery.broken.yaml
schemaVersion: "1"
type: "rule"
id: "stateful-node-without-zone-redundancy"
severity: "error"
select:
  node:
    category: "compute"
when:
  all:
    - prop: "stateless"
      equals: false
    - inGroup:
        kind: "availability-zone"
        count:
          eq: 1
    - not:
        inGroup:
          kind: "cell"
message: "Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it."

The same page as markdown, for an agent: /catalogue/rules/stateful-node-without-zone-redundancy.md