Ecommerce platforms coordinate storefronts, payment services, order systems, warehouses, customer tools, and marketing automation through events. A webhook may announce that an order was paid, inventory changed, a refund was created, or fulfillment progressed. If that event arrives late, twice, out of order, or not at all, the operational impact can be larger than the technical error suggests.
Reliable commerce therefore requires a measurable event-delivery system, not a collection of endpoints that appear healthy.

Table of contents
- Why webhook success is not business success
- The event delivery scorecard
- Duplicates, retries, and ordering
- Reconciliation as a platform capability
- Platform evaluation questions
- A 30-day reliability plan
Why webhook success is not business success
An endpoint can return a successful HTTP status while downstream work fails. The order event may be accepted but never reach the warehouse. A CRM update may succeed while the same message generates a duplicate loyalty credit. An inventory message may arrive after a newer one and overwrite the current quantity.
Measure the complete path:
platform event → authenticated receipt → durable queue → processing → destination update → reconciliation
Each stage needs its own timestamp and status. Without them, teams see an HTTP 200 and assume the business process completed.
| Failure mode | Shopper or operator impact | Control |
|---|---|---|
| duplicate order event | duplicate email, points, or fulfillment | idempotency key |
| delayed inventory event | oversell or false out-of-stock | lag SLO and reconciliation |
| out-of-order customer update | old consent or address state restored | version/time comparison |
| processing crash after receipt | event appears delivered but work is lost | durable queue |
| bad payload version | integration rejects new schema | contract testing |
| destination outage | backlog grows silently | retry policy and alert |
| permanently missed event | systems drift | scheduled reconciliation |
The event delivery scorecard
Track performance by event topic and business destination. Order-created and inventory-updated events should not share one blended average.
| Metric | Calculation | Decision it supports |
|---|---|---|
| receipt success rate | authenticated accepted deliveries / attempts | endpoint availability |
| end-to-end completion rate | destination-confirmed events / expected events | business reliability |
| p50/p95 delivery lag | destination time minus source event time | SLA and backlog control |
| duplicate delivery rate | repeated event IDs / received events | idempotency demand |
| retry recovery rate | events succeeding after retry / retried events | retry effectiveness |
| dead-letter rate | permanently failed events / events | unresolved drift |
| out-of-order rate | stale-version arrivals / entity events | versioning need |
| reconciliation gap | source records absent or wrong downstream | final truth |
Add an event age dimension to queue dashboards. A queue of 10,000 recent low-priority product updates may be less urgent than five paid orders delayed for an hour.
For order-specific controls, see the payment retry and idempotency guide and Shopify webhook reliability statistics.
Duplicates, retries, and ordering
At-least-once delivery is common in distributed systems. It favors not losing an event, but it means consumers must tolerate duplicates.
Shopify’s current guidance says duplicate webhook deliveries can occur and recommends using the X-Shopify-Event-Id header to detect repeats. Its documentation also says failed HTTPS deliveries are retried eight times over four hours, and recommends reconciliation jobs to retrieve potentially missed data. See Shopify webhook best practices and delivery verification guidance.
Treat those values as Shopify-specific behavior, not universal platform benchmarks. Every platform and integration must be documented separately.
An idempotent consumer should:
- Verify the sender signature against the raw request.
- Record the platform event ID before side effects.
- Return quickly after durable acceptance.
- Process asynchronously.
- Check whether the business action already completed.
- Store outcome, attempt count, and timestamps.
- Make retries safe.
Event ID deduplication alone may not protect the business. Two distinct events can request the same action, or an operator can replay an event. Use a business idempotency key such as order_id + action_type + version where appropriate.
Ordering also needs explicit rules. If inventory version 105 arrives before version 104, the consumer should reject or ignore the stale update rather than applying events in arrival order.
Reconciliation as a platform capability
Webhooks tell you what changed; reconciliation verifies what is true.
Create a scheduled process that compares authoritative platform records with each downstream system. The frequency should reflect business risk.
| Entity | Suggested comparison | Frequency model |
|---|---|---|
| paid orders | source order exists in OMS/WMS | near real time plus daily full check |
| refunds | refund status and amount match finance/service | hourly or daily |
| inventory | available-to-sell by SKU/location | frequent incremental plus full snapshot |
| fulfillments | tracking and status align | hourly |
| customers | governed fields and consent state | daily with stricter privacy controls |
| products/prices | version and market values match | before campaigns plus scheduled |
Do not let reconciliation silently overwrite data. Produce reason-coded exceptions:
- missing downstream record;
- mismatched amount or state;
- stale downstream version;
- duplicate downstream record;
- unknown source reference;
- terminal failure awaiting operator;
- intentionally excluded record.
The exception queue is an operational product. Give it owners, service levels, replay controls, and an audit trail.

Platform evaluation questions
Webhook capabilities should be part of ecommerce platform selection and architecture reviews.
| Evaluation area | Question |
|---|---|
| authentication | How are signatures generated, rotated, and verified? |
| delivery | What timeout, retry, and disablement behavior applies? |
| identity | Is every delivery assigned a stable event ID? |
| ordering | Are sequence numbers or entity versions available? |
| replay | Can operators safely redeliver a time range? |
| transport | Are queue or event-bus destinations supported? |
| observability | Can teams inspect attempts and failure reasons? |
| schema | How are breaking payload changes communicated? |
| reconciliation | Which APIs support efficient backfill and comparison? |
| retention | How long can event history be queried? |
A platform with many webhook topics but weak observability can create more operational work than one with fewer, well-governed events.
Incident analysis
When an incident occurs, build a timeline from source creation to final recovery:
- when did the source state change?
- when was the first delivery attempted?
- did authentication pass?
- was the event durably stored?
- which consumer version processed it?
- what external dependency failed?
- how many entities were affected?
- did retries help or amplify load?
- when did reconciliation identify the gap?
- how were records repaired?
Connect technical counts to business exposure: orders awaiting fulfillment, units oversold, customers missing service messages, or refunds delayed. Avoid converting every affected record into assumed lost revenue.
A 30-day reliability plan
Week 1: map critical events
- Inventory all producers, topics, consumers, and destinations.
- Classify events by business criticality.
- Record retry, timeout, and signature behavior.
- Baseline lag, duplicates, failures, and reconciliation gaps.
Week 2: make processing safe
- Add durable acceptance before asynchronous work.
- Implement event and business idempotency keys.
- Store source timestamps and entity versions.
- Create dead-letter handling with redacted diagnostics.
Week 3: reconcile
- Build source-to-destination comparisons for paid orders and inventory.
- Add reason-coded exception queues.
- Test replay on a non-production dataset.
- Define an operator runbook.
Week 4: govern releases
- Add schema contract tests.
- Load-test retry storms and destination outages.
- Publish topic-level SLOs.
- Review event health with commerce operations weekly.
Reliable event delivery is not the absence of retries or duplicates. It is the ability to accept imperfect delivery, preserve correct business outcomes, detect drift, and repair it predictably.