Aglet

Prioritize webhook replay risks by effect

A replay that repeats an email or state transition differs from one safely discarded at receipt. Prioritize by effect, tenant or resource reach, age, and whether the event identity and prior result are available. Keep stale signed input out of ordinary processing until its disposition is clear.

Decide where the work belongs

  1. Map effect exposure

    For each repeat, record event ID, resource, endpoint, side effect, prior result, and current state. Separate a duplicate acknowledgement from a second mutation. Use bounded identifiers and avoid copying payload content into the queue.

  2. Compare containment

    Assess deduplicating by stable ID, rejecting stale input, pausing one endpoint, reading current resource state, or reviewing a manual resend. Record recovery limits and owner. Do not treat a valid signature as permission to repeat an irreversible action.

  3. Set replay order

    Queue confirmed duplicate effects and identity-unknown deliveries first, then stale-only rejects and isolated safe repeats. Set review time, freshness evidence, and a finite replay rule. If clock state is unknown, prioritize time evidence before widening the window.

What to carry forward

Return a replay queue with event identity, effect exposure, freshness evidence, containment, owner, and proof needed to reprioritize. Escalate repeated irreversible effects. Keep rank provisional when prior processing or receiver time is unobserved. Keep stale input out of ordinary processing.

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