Synchronous call chain too deep

warningsync-chain-too-deep

Every consecutive synchronous hop from this entry point spends part of the stated p95 latency budget, and the chain's failures multiply. More than three hops is a budget nobody is tracking.

Severity
warning
Selects
every node of kind api-gateway
Components in scope
41
What it checks

It looks at every node of kind api-gateway, and fires when:

  • — all of these hold:
  • — the design requirement `latency.p95Ms` has a value
  • — the longest chain of synchronous calls starting at the node is more than 3 hops long
Message
Entry point '{{node.id}}' starts a synchronous call chain deeper than 3 hops while the design states a p95 latency target.

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

Applies to · 41 components
Tripped by · 5

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
# syncChainDepth is the longest path of consecutive sync edges starting at this node.
# With a stated p95 latency target, every extra synchronous hop eats into that budget.
# Tripped by designs/order-processing.broken.yaml.
schemaVersion: "1"
type: "rule"
id: "sync-chain-too-deep"
severity: "warning"
select:
  node:
    kind: "api-gateway"
when:
  all:
    - requirement: "latency.p95Ms"
      exists: true
    - syncChainDepth:
        gt: 3
message: "Entry point '{{node.id}}' starts a synchronous call chain deeper than 3 hops while the design states a p95 latency target."

The same page as markdown, for an agent: /catalogue/rules/sync-chain-too-deep.md