Build a useful investigation brief
Map attempt and commit boundaries
Align enqueue, dequeue, handler start, validation, transaction begin and commit, external calls, acknowledgment, failure, and retry scheduling. Mark which effects are local, external, or unknown. Use stable identifiers to connect records and avoid assuming an exception means no side effect happened.
Test idempotency with a controlled failure
Reproduce a failure before and after the side-effect boundary in a controlled environment. Run the same logical job again and compare record identifiers, counts, timestamps, and external request evidence. Keep input structure fixed and verify rollback or compensation behavior explicitly.
Inspect policy and exhausted outcomes
Check how failure classes choose retry, delay, or final failure and whether an exhausted job can be reviewed or safely replayed. Compare transient and permanent errors. Record any partial state, duplicate effect, or missing audit information as separate findings with confidence.
What to carry forward
Deliver an evidence-backed brief with attempt timeline, side-effect boundaries, idempotency result, retry policy, exhausted outcome, and remaining uncertainty. Investigation is complete when implementation can target one boundary and verification can prove both recovery and safe repeat execution.
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