Aglet

Verify batch resume replays only the safe checkpoint boundary

Verification must prove both sides of the checkpoint boundary. Interrupt before an item outcome is durable, then after it is durable, and resume each batch. Compare item identities, effects, cursor meaning, and terminal counts with a fixed expected sequence. Treat input changes as a separate contract case.

Check whether the outcome improved

  1. Verify interruption before commit

    Stop the worker before the selected item records its outcome and restart with the same input revision. Confirm that item is processed once from the documented checkpoint and that earlier committed items are not silently omitted. Reconcile the ledger with the resulting effects.

  2. Verify interruption after commit

    Stop after the item outcome and checkpoint are durable. Resume and confirm the next item is selected, with no duplicate side effect for the committed item. Read the checkpoint and ledger independently so matching logs do not hide a cursor mismatch.

  3. Verify changed input behavior

    Resume against a deliberately changed selection or revision and check the documented response: reject, pin to the original snapshot, or require review. Confirm new records are not silently skipped or inserted into the old sequence without an explicit rule.

What to carry forward

Accept when both interruption cases produce the documented replay boundary, exact item coverage, and reconciled effects. Keep changed-input handling explicit. If a worker can commit an item without advancing its checkpoint, retain the recovery state as unresolved until that gap is safely represented.

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