{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/give-queued-work-an-expiry-condition",
  "id": "MHC-D-RESEARCH-0533",
  "version": "0.1.0",
  "title": "Give queued work an expiry condition",
  "summary": "A queue can preserve work long enough to make it useless.",
  "kind": "protocol",
  "body": "For time-sensitive jobs, define when the result stops creating value. Store the request time or deadline and check it before expensive processing begins. Expired work can be dropped, rerouted or explicitly failed according to the business rule so fresh valuable work is not trapped behind obsolete requests.",
  "limits": [
    "Never expire legal, financial or safety obligations just because they are old; expiry must reflect actual business semantics."
  ],
  "topics": [
    "union-capacity-overload-resilience"
  ],
  "intents": [],
  "source_ids": [
    "RS-D6954C8ACF093D83"
  ],
  "evidence": [
    {
      "claim": "AWS recommends monitoring message age and avoiding long queue backlogs that process work after it is no longer useful.",
      "source_id": "RS-D6954C8ACF093D83",
      "role": "supports",
      "note": "Some workloads require strict processing of old items for legal or consistency reasons.",
      "locator": "Queue backlog anti-patterns and message age"
    },
    {
      "claim": "AWS guidance recommends dropping or deprioritizing old queued messages when their business value has expired and the workflow allows it.",
      "source_id": "RS-D6954C8ACF093D83",
      "role": "supports",
      "note": "Expiry requires a real business rule; silently discarding durable obligations is unsafe.",
      "locator": "Drop old messages and prioritize useful work"
    }
  ],
  "use_when": [
    "A backlog can outlive the reason the work was requested."
  ],
  "avoid_when": [
    "Never expire legal, financial or safety obligations just because they are old; expiry must reflect actual business semantics."
  ],
  "example": "An AI-generated meeting brief requested for a call should not consume compute hours after the meeting has already ended.",
  "check": "Old work has a defined business state instead of remaining indefinitely 'pending.'",
  "steps": [
    "Old work has a defined business state instead of remaining indefinitely 'pending.'"
  ],
  "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"
    }
  ],
  "relations": [
    {
      "from": "MHC-D-RESEARCH-0533",
      "to": "MHC-D-RESEARCH-0534",
      "type": "useful_with",
      "url": "/knowledge/move-poison-work-out-of-the-main-queue"
    }
  ],
  "collections": [
    {
      "id": "RC-2845565BFEBD1A30",
      "title": "Keep useful work flowing when demand exceeds capacity",
      "url": "/collections/keep-useful-work-flowing-when-demand-exceeds-capacity"
    }
  ]
}
