Keep the lesson for the next incident
Name dependency states
Define success, failure, cancellation, missing, running, timeout, and review states for prerequisites and dependents. State the fan-in rule, release event, and owner of each projection. Do not let an absent prerequisite be implicitly equivalent to success.
Retain graph fixtures
Keep all-success, one-failure, cancellation, missing, delayed, and repeated-event cases with expected dependent states and outputs. Re-run them after changing graph construction, edge storage, fan-in logic, timeout, scheduler, or state projection.
Watch wait and release signals
Review dependents whose wait age grows past policy, release without current prerequisite events, and graph revisions that differ between prerequisite and dependent. Reconcile before manual recovery. Assign review when a new dependency edge or outcome lacks a mapping.
What to carry forward
Preserve a versioned dependency state machine, edge ownership, fan-in rule, and late-event reconciliation with complete outcome fixtures. Recurrence checks should connect wait age and release evidence. Reopen review when graph shape, prerequisite outcomes, timeout, projection, or dependent actions change the release contract.
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