{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/open-the-circuit-when-a-dependency-keeps-failing",
  "id": "MHC-D-RESEARCH-0539",
  "version": "0.1.0",
  "title": "Open the circuit when a dependency keeps failing",
  "summary": "Sometimes the kindest request to a failing service is the one you do not send.",
  "kind": "protocol",
  "body": "Track recent dependency failures. When failure crosses the defined threshold, stop normal calls temporarily and fail or degrade locally. After a recovery interval, allow a small number of probe calls before reopening normal traffic. Make breaker state visible to operators.",
  "limits": [
    "Circuit breakers can block a recovered service if thresholds or probe logic are poor; tune and monitor them."
  ],
  "topics": [
    "union-capacity-overload-resilience"
  ],
  "intents": [],
  "source_ids": [
    "RS-ED8A81EBD218ABFE"
  ],
  "evidence": [
    {
      "claim": "Circuit breakers stop repeatedly failing calls to an unhealthy dependency and later allow limited probes to detect recovery.",
      "source_id": "RS-ED8A81EBD218ABFE",
      "role": "supports",
      "note": "Poor thresholds can open unnecessarily or delay recovery; breaker state needs observability.",
      "locator": "Intent and open/half-open/closed states"
    }
  ],
  "use_when": [
    "A dependency is persistently failing or timing out and retries add more load without useful progress."
  ],
  "avoid_when": [
    "Circuit breakers can block a recovered service if thresholds or probe logic are poor; tune and monitor them."
  ],
  "example": "An agent stops calling a failing external search service after repeated timeouts and periodically tests recovery with one low-rate request.",
  "check": "A persistently failing dependency cannot trigger unlimited retries from every caller.",
  "steps": [
    "Failure threshold is defined.",
    "Open state stops normal calls.",
    "A fallback or explicit failure path exists.",
    "Half-open probes are limited.",
    "Successful probes close the circuit.",
    "Breaker state and transitions are observable."
  ],
  "sources": [
    {
      "id": "RS-ED8A81EBD218ABFE",
      "title": "Circuit breaker pattern",
      "url": "https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/circuit-breaker.html"
    }
  ],
  "relations": [
    {
      "from": "MHC-D-RESEARCH-0539",
      "to": "MHC-D-RESEARCH-0540",
      "type": "useful_with",
      "url": "/knowledge/define-the-cheaper-mode-that-preserves-the-core-function"
    }
  ],
  "collections": [
    {
      "id": "RC-2845565BFEBD1A30",
      "title": "Keep useful work flowing when demand exceeds capacity",
      "url": "/collections/keep-useful-work-flowing-when-demand-exceeds-capacity"
    }
  ]
}
