Build a useful investigation brief
Align attempts and effect boundaries
Map request or event receipt, deduplication lookup, lock or uniqueness check, handler start, local transaction, external effect, commit, acknowledgment, timeout, retry, and final records. Compare stable operation and effect identifiers. Record any external effect that cannot be correlated instead of assuming it was skipped.
Reproduce concurrent or repeated attempts
Run two attempts with the same logical identity, one delayed or retried at the relevant boundary, in a controlled environment. Compare interleaving, locks, uniqueness decisions, commits, responses, and final state. Keep distinct logical operations in the same test to ensure deduplication is not too broad.
Test one single-effect correction
Evaluate one change such as a scoped idempotency key, database uniqueness constraint, atomic claim, or safe effect ordering. Replay concurrency, timeout, retry, and distinct-operation cases. Inspect final identifiers, values, audit history, response semantics, and recoverability before calling duplicates resolved.
What to carry forward
Deliver an evidence-backed brief with logical identity, attempt interleaving, first duplicate boundary, tested correction, distinct-operation comparison, and uncertainty. Investigation is complete when implementation can target one single-effect boundary and verification can prove both deduplication and allowed repetition.
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