Object store in fewer than three zones with a durability target

errorobject-store-single-zone-with-durability-target

Eleven nines of durability assumes redundancy spread over at least three failure domains. An object store confined to fewer zones, or declaring none, cannot reach the target the design states.

Severity
error
Selects
every node of kind object-store
Components in scope
33
What it checks

It looks at every node of kind object-store, and fires when:

  • — all of these hold:
  • — the design requirement `durability.annualNines` is a number greater than 10
  • — any of these hold:
  • — the node's `zones` has no value
  • — the node's `zones` is a number less than 3
Message
Object store '{{node.id}}' spans fewer than 3 zones (or declares none) while the design targets more than 10 nines of durability.

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

Applies to · 33 components
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
# Eleven nines of durability is a designed target that assumes redundancy spread over at
# least three failure domains. An object store confined to one or two zones cannot meet it.
# Tripped by: designs/object-storage.broken.yaml
schemaVersion: "1"
type: "rule"
id: "object-store-single-zone-with-durability-target"
severity: "error"
select:
  node:
    kind: "object-store"
when:
  all:
    - requirement: "durability.annualNines"
      gt: 10
    - any:
        - prop: "zones"
          exists: false
        - prop: "zones"
          lt: 3
message: "Object store '{{node.id}}' spans fewer than 3 zones (or declares none) while the design targets more than 10 nines of durability."

The same page as markdown, for an agent: /catalogue/rules/object-store-single-zone-with-durability-target.md