Aglet

Document prerequisite states and dependency release rules

The durable lesson is an explicit dependency state machine. Record which prerequisite outcomes release, block, fail, or require review, how fan-in counts them, and how a late event changes the dependent. Keep graph identity and revision with each edge so state from an older graph cannot release new work.

Keep the lesson for the next incident

  1. 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.

  2. 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.

  3. 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