Keep the lesson for the next incident
Name the overlap rule
State the schedule interval, active window, guard or lease owner, and behavior for a second due occurrence. Define how queued, skipped, concurrent, and interrupted runs are represented. Tie the rule to output identity and any idempotency readback.
Retain overlap fixtures
Keep finish-before, span-interval, queued-settlement, and lease-recovery cases with expected run IDs and outputs. Re-run them after changing recurrence intervals, job duration, lock lifetime, worker shutdown, or output writing. Record whether shared outputs are allowed or must be reconciled in every case.
Watch recurrence signals
Review pairs with simultaneous active windows, lease expiry before terminal state, or multiple writers for one output key. Compare policy and effect records before changing scheduling. Assign review when a new schedule or output path lacks an overlap case.
What to carry forward
Preserve a documented overlap policy, guard ownership, run identity, and output reconciliation with short and spanning fixtures. Recurrence checks should connect active windows to durable effects. Reopen review when schedule interval, runtime, lease, worker recovery, or output ownership changes overlap behavior.
Technical background: Rails guides.
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