Keep the lesson for the next incident
Write the deadline contract
Name the clock and deadline calculation, allowed phases, behavior at the boundary, cleanup owner, and terminal states. State what a retry may repeat and what requires reconciliation. Keep dependency waits explicit when they consume the same budget.
Retain boundary fixtures
Keep below-limit, pre-commit, post-commit, cleanup, and dependency-wait cases with expected effects and statuses. Re-run them after changing input size, phase work, dependency latency, transaction scope, worker limits, or retry handling.
Watch for recurring ambiguity
Review timeouts with unknown writes, cleanup that outlives ownership, and retries created without a commit readback. Inspect phase and clock evidence before changing the limit. Assign review when a new long phase or side effect lacks a deadline rule.
What to carry forward
Preserve a phase-aware deadline, cleanup, commit, and retry contract with matched fixtures. Recurrence checks should connect timeout records to durable effects and owner state. Reopen review when job shape, dependency wait, transaction scope, or a new side effect changes what the limit can safely interrupt.
Technical background: Celery documentation.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow