Retry queue without backoff
warningretry-without-backoff
Retrying a transient failure at full speed turns one slow dependency into a retry storm. A retry queue backs off, preferably exponentially and with jitter.
- Severity
- warning
- Selects
- every node of kind queue
- Components in scope
- 24
It looks at every node of kind queue, and fires when:
- — all of these hold:
- — the node's `role` is "retry"
- — any of these hold:
- — the node's `backoff` has no value
- — the node's `backoff` is "none"
Retry queue '{{node.id}}' declares no backoff. Retries without backoff amplify the outage they are retrying through.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 # Retrying a transient failure at full speed turns one slow dependency into a retry # storm. A retry queue must back off, preferably exponentially with jitter. # Tripped by: designs/payment-system.broken.yaml schemaVersion: "1" type: "rule" id: "retry-without-backoff" severity: "warning" select: node: kind: "queue" when: all: - prop: "role" equals: "retry" - any: - prop: "backoff" exists: false - prop: "backoff" equals: "none" message: "Retry queue '{{node.id}}' declares no backoff. Retries without backoff amplify the outage they are retrying through."