{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/fail-work-that-cannot-meet-its-useful-deadline",
  "id": "MHC-D-RESEARCH-0538",
  "version": "0.1.0",
  "title": "Fail work that cannot meet its useful deadline",
  "summary": "Late work can consume real resources while producing zero useful result.",
  "kind": "principle",
  "body": "Propagate deadlines into the processing path. Before starting or continuing expensive work, check whether enough time remains to deliver a useful result. If not, fail quickly or return an explicit degraded response so resources can serve work that still has a chance to succeed.",
  "limits": [
    "Some durable background jobs remain valuable after the requester waits; distinguish user deadlines from durable obligations."
  ],
  "topics": [
    "union-capacity-overload-resilience"
  ],
  "intents": [],
  "source_ids": [
    "RS-D6954C8ACF093D83",
    "RS-C1BEE49CF0075A87"
  ],
  "evidence": [
    {
      "claim": "Fail-fast strategies release resources when a request cannot succeed within the required service objective instead of allowing doomed work to continue consuming capacity.",
      "source_id": "RS-D6954C8ACF093D83",
      "role": "supports",
      "note": "Failing fast is inappropriate when partial or delayed completion still has required value.",
      "locator": "Fail fast desired outcome"
    },
    {
      "claim": "Google SRE recommends small queues or early rejection under steady overload because long queues add latency, memory use and work that may already have missed its deadline.",
      "source_id": "RS-C1BEE49CF0075A87",
      "role": "supports",
      "note": "Bursty asynchronous workloads can legitimately benefit from larger queues when backlog remains useful.",
      "locator": "Queue management and latency/deadlines"
    }
  ],
  "use_when": [
    "A request has waited so long that continuing to process it cannot meet the caller's deadline or service objective."
  ],
  "avoid_when": [
    "Some durable background jobs remain valuable after the requester waits; distinguish user deadlines from durable obligations."
  ],
  "example": "Do not run a 30-second analysis when only two seconds remain before the user request times out.",
  "check": "The system stops spending material work on requests that are already unable to create timely value.",
  "sources": [
    {
      "id": "RS-D6954C8ACF093D83",
      "title": "REL05-BP04 Fail fast and limit queues",
      "url": "https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_mitigate_interaction_failure_fail_fast.html"
    },
    {
      "id": "RS-C1BEE49CF0075A87",
      "title": "Addressing Cascading Failures",
      "url": "https://sre.google/sre-book/addressing-cascading-failures/"
    }
  ],
  "relations": [
    {
      "from": "MHC-D-RESEARCH-0538",
      "to": "MHC-D-RESEARCH-0539",
      "type": "useful_with",
      "url": "/knowledge/open-the-circuit-when-a-dependency-keeps-failing"
    }
  ],
  "collections": [
    {
      "id": "RC-2845565BFEBD1A30",
      "title": "Keep useful work flowing when demand exceeds capacity",
      "url": "/collections/keep-useful-work-flowing-when-demand-exceeds-capacity"
    }
  ]
}
