Keep the lesson for the next incident
Document replay rules
Record signed timestamp, receiver clock, freshness tolerance, stable event ID, delivery ID, deduplication retention, duplicate acknowledgement, and review path. Define how old business timestamps differ from delivery freshness. Preserve the receiver clock alongside the signed time.
Keep repeat fixtures
Retain fresh, repeated, stale, manual-resend, old-business-time, missing-ID, race, and post-effect cases with synthetic events. Store expected handler and side-effect outcomes. Include the original replay shape for future storage or verifier changes.
Review repeat signals
Watch repeated IDs, stale signatures, clock drift, duplicate effects, claim races, and identity gaps by endpoint. Assign an owner and threshold. Close the follow-up only when freshness and effect checks cover every supported receiver path.
What to carry forward
Close learning with identity and freshness rules, replay fixtures, deduplication ownership, and review signals. Keep sender and clock limits visible. The durable outcome is a deliberate no-op or review path for repeated events. Review deduplication retention with the replay window.
Technical background: Coinbase developer 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