Aglet

Verify completion for an asynchronous API bulk job

Bulk verification must distinguish an accepted job from completed records. Run small batches through submission, status, result, and reconciliation, then interrupt and resume. Check per-record outcomes, operation identity, and result availability before declaring a job complete. Include the result link and local record state in each check.

Check whether the outcome improved

  1. Define lifecycle outcomes

    Write expected local state for accepted, running, complete, partial, failed, expired, and duplicate-submission cases. Include intended, completed, and failed counts plus the allowed next action. Keep reads and mutating batches separate.

  2. Exercise progress and restart

    Run lifecycle fixtures with delayed status, a process restart, result pagination, and a failed item. Confirm the same operation handle is used and pending work remains visible. Verify a complete status without results cannot silently mark all records done.

  3. Check reconciliation safety

    Repeat a status read and a result retrieval, then attempt a bounded recovery for partial work. Inspect each local record and side effect count. Confirm a duplicate request is blocked or clearly reviewed rather than creating another batch.

What to carry forward

Accept when lifecycle states match durable record evidence, partial work is visible, retries preserve the operation handle, and expired results have a clear review path. Keep external retention behavior partial when uncontrolled. Record batch fixtures and reconciliation outcomes.

Technical background: GitHub 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