Webhook Reliability Concept

Delivery Status vs Processing Status

A delivery status says what happened at one HTTP boundary. A processing status says whether the business workflow actually completed.

Scenario

Shopify sends an order webhook, Webhook Guard forwards it, and the destination returns 200. The ERP order is still missing.

Operational problem

Teams often treat the 200 as proof that the order synced. It only proves that the component returning the response accepted the HTTP request.

Incorrect implementation

  • Return 200 before recording or queueing the event.
  • Mark the order synced when the endpoint receives the request.
  • Use delivery success as the only alerting signal.

Safer implementation

  • Persist or enqueue the event before acknowledgment.
  • Track received, delivered, processing, committed, failed, and reconciled states separately.
  • Alert when delivery succeeds but business completion does not appear.

Evidence and observability

  • Delivery attempt status and response time.
  • Queue message ID and worker trace.
  • Database commit record and downstream system identifier.

Stage-by-stage timeline

StageStatus to recordEvidence ownerFailure signal
Provider deliveryShopify attempted delivery and received a responseShopify delivery logsNo attempt, non-2xx, redirect, timeout, or signature failure
Intake statusWebhook Guard received and authenticated the eventWebhook Guard Event DetailMissing event, invalid signature, or rejected intake
Downstream deliveryWebhook Guard delivered to the configured destinationDelivery Attempts401, 403, 429, 5xx, timeout, or retry exhaustion
Application processingThe destination persisted, queued, and processed the workApplication logs and databaseNo queue message, worker failure, rollback, or validation error
Final business stateERP, OMS, WMS, or database reflects the operationDownstream systemMissing or partial external record

What each status proves

A status is trustworthy only for the boundary that emitted it. The safest incident model keeps provider delivery, intake, downstream delivery, application processing, and final business-state status separate.

Observed statusProvesDoes not prove
Shopify received 2xxThe provider request reached an endpoint that returned successWebhook Guard routed it or the ERP processed it
Webhook Guard event existsWebhook Guard received and recorded the eventAny configured destination accepted it
Destination returned 2xxThe destination HTTP boundary accepted the requestA worker committed database or ERP state
Worker completedApplication processing reached a known terminal stateExternal ERP state is correct unless verified
ERP record existsThe business state was created or updatedThe local sync status or mapping is correct

Example: delivery succeeded but ERP processing failed

  • Shopify delivered an order webhook and received HTTP 200.
  • Webhook Guard recorded the event, matched the ERP integration, and received HTTP 200 from the destination.
  • The destination returned before enqueueing the ERP job.
  • No queue message, worker trace, or ERP order exists.
  • The correct diagnosis is application processing failure after downstream delivery, not provider delivery failure.

Monitoring and correlation requirements

  • Propagate Shopify delivery identifiers, Webhook Guard event IDs, queue IDs, worker trace IDs, and downstream request IDs.
  • Alert when delivery succeeds but final business state does not appear within the expected operational window.
  • Store enough evidence to distinguish retryable endpoint delivery from non-retryable business validation failure.

Pipeline context

Text equivalent: diagnose the event from source action, subscription, provider delivery, intake, routing, downstream delivery, customer processing, and final business state.

Product visibility

Webhook Guard visibility boundary

  • Webhook Guard records downstream delivery attempts, response status, response time, and attempt number.

Need the event history before you can diagnose the failure? Webhook Guard helps record received events, matched integrations, delivery attempts, retry activity, duplicate classification, and invalid-signature evidence. It does not replace downstream application logs or ERP reconciliation.

Sources and last verification

Sources and verification