Aglet

Learn from webhook topic drift

The durable lesson is a topic contract connecting subscription, event header, schema, route, acknowledgement, and workflow state. Preserve the missing or unexpected topic that exposed the issue. Record unsupported labels and sender filters as explicit limits for every supported handler.

Keep the lesson for the next incident

  1. Document topic semantics

    Record supported topics, filters, endpoint, schema or version, route branch, acknowledgement, workflow effect, duplicate behavior, and owner. Define the disposition for omitted, renamed, and unexpected topics. Keep unsupported topics explicitly listed.

  2. Keep coverage fixtures

    Retain supported, omitted, renamed, unexpected, overlapping, duplicate, and filter-change cases with synthetic events. Store expected branch and state. Include the original coverage gap for future subscription changes. Preserve event identity with each case.

  3. Review topic signals

    Watch missing deliveries, unexpected headers, route fallbacks, duplicate coverage, and workflow state gaps by endpoint and revision. Assign an owner and threshold. Close the follow-up only when state-changing topics run the matrix. Keep workflow state beside the signal.

What to carry forward

Close learning with topic semantics, fixtures, route ownership, and coverage signals. Keep sender filtering visible. The useful outcome is an explicit disposition for every observed topic, not blanket subscription. Review topic filters after every handler or version change.

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