Shared dependency without redundancy
errorshared-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.
- Severity
- error
- Selects
- every node of kind dns or coordination-service
- Components in scope
- 52
It looks at every node of kind dns or coordination-service, and fires when:
- — 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
Shared dependency '{{node.id}}' is not redundant, but the design requires redundant discovery.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.
booking-searchreferencecloudflare-edgereferencedistributed-message-queuereferencegithub-mysqlreferencelinkedin-kafkareferencemonzo-platformreferencenearby-friendsreferencenetflix-streamingreferenceobject-storagereferencerobinhood-tradingreferenceshopify-flash-salereferencespotify-playbackreferencestack-overflowreferencestripe-paymentsreferencetinder-georeferenceunique-id-generatorreferencezoom-videoreference
# yaml-language-server: $schema=../schema/rule.schema.json # The design requires redundant discovery, but a DNS or coordination service that every # component depends on has a single provider or a single replica. # Tripped by: designs/object-storage.broken.yaml schemaVersion: "1" type: "rule" id: "shared-dependency-without-redundancy" severity: "error" select: node: kind: ["dns", "coordination-service"] when: all: - requirement: "availability.discoveryRedundant" equals: true - any: - prop: "redundantProviders" equals: false - prop: "replicated" equals: false message: "Shared dependency '{{node.id}}' is not redundant, but the design requires redundant discovery."