Single-region datastore behind a multi-region SLA
errordatastore-single-region
The design promises multi-region availability, but this datastore sits in one region and does not replicate. A region outage takes the system of record with it.
- Severity
- error
- Selects
- every node of kind sql-database
- Components in scope
- 76
It looks at every node of kind sql-database, and fires when:
- — all of these hold:
- — the design requirement `availability.multiRegion` is true
- — the node sits inside exactly 1 region group
- — the node's `replication` is "none"
Datastore '{{node.id}}' is single-region with no replication, but the design requires multi-region availability.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.
# yaml-language-server: $schema=../schema/rule.schema.json # The design promises multi-region availability, but this datastore lives in one region # with no replication. A region outage takes the system of record with it. # Tripped by designs/multi-region-web.broken.yaml. schemaVersion: "1" type: "rule" id: "datastore-single-region" severity: "error" select: node: kind: "sql-database" when: all: - requirement: "availability.multiRegion" equals: true - inGroup: kind: "region" count: eq: 1 - prop: "replication" equals: "none" message: "Datastore '{{node.id}}' is single-region with no replication, but the design requires multi-region availability."