Webhook Delivery-Gap Monitor
Pricing
from $0.50 / 1,000 resolved webhook event reconciliations
Webhook Delivery-Gap Monitor
Find missing, pending, duplicate, late, and out-of-order webhook deliveries by reconciling provider manifests with receiver logs. Returns auditable results; does not deliver webhooks.
Pricing
from $0.50 / 1,000 resolved webhook event reconciliations
Rating
0.0
(0)
Developer
Mehdi Badawi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Find missing, pending, duplicate, late, and out-of-order webhook deliveries by reconciling provider event manifests with receiver logs. Every result carries the evidence needed to audit the verdict.
Start in 30 seconds
- Select Try for free and run with no input for a labeled demo.
- Supply provider events, consumer receipts, a coverage window, and your delivery grace period.
- Schedule the Actor after both systems export their logs.
Price: $0.0005 per resolved expected event, plus a $0.00005 start event. Unknown, failed, unmatched-consumer, and demo rows are free.
This Actor does not deliver or replay webhooks and does not connect to Stripe, Shopify, GitHub, or your receiver.
Webhooks are fundamentally asynchronous and best-effort. Platforms like Stripe, Shopify, and GitHub drop deliveries due to transient outages, exhausted retries (Shopify unregisters webhooks after 8 consecutive failures), or silent network loss.
This Apify Actor reconciles upstream provider manifests against downstream consumer receipt logs to pinpoint:
- Missed Deliveries (
missing): Events logged by provider but absent from consumer database. - Duplicates (
duplicate): Events delivered multiple times. - Delivery Delays (
delayed): Deliveries exceeding latency SLA thresholds. - Sequence Inversions (
out-of-order): Out-of-order event sequence delivery. - Truthful Unknowns (
unknown): Unverifiable events due to incomplete provider logs, unattested sequence windows, or ambiguous timestamps. - Pending (
pending): An event is still inside its configured delivery grace period.
Truthful Unknown Semantics
The Actor never manufactures optimistic ok verdicts or false missing claims when evidence is ambiguous:
- When
coverage.isComplete === false, missing records reportunknown(provider-log-truncated). - When events fall outside declared coverage windows, they report
unknown(coverage-unattested). - When timestamps are unparseable or inverted, they report
unknown(time-ambiguous). - A missing receipt is not called
missinguntil the grace period has elapsed and a real complete coverage window contains the event.
Quickstart & Local Execution
1. Run Unit and Behavior Tests
The test suite uses Node.js built-in test runner without external dependencies or cloud tokens:
$npm test
2. Credential-Free Default Execution
Running npm start without any input or credentials completes in seconds, uses the built-in deterministic demo dataset, and writes a non-empty dataset to storage:
$npm start
File Structure
| File | Purpose |
|---|---|
package.json | Actor manifest, dependencies (apify: 3.7.2), start and test scripts |
Dockerfile | Apify Actor container image specification (apify/actor-node:22) |
.actor/ | Apify Actor specification, input/output/dataset/KVS JSON schemas |
contracts/ | Normative contract (CONTRACT.md) and JSON Schema validators |
fixtures/ | Realistic test fixtures (demo, Stripe gap, Shopify drop, GitHub gap, truthful unknowns) |
src/core/ | Pure deterministic evaluation core (reconcile.mjs, detect.mjs, canonical.mjs) |
src/main.mjs | Thin Apify Actor adapter with injected seams and demo fallback |
tests/ | Comprehensive test suite covering gate, core, detect, and actor lifecycle |
Security and privacy boundaries
- Zero Secrets: Requires no API tokens, user session cookies, or private credentials.
- Zero Headless / Scraping Dependencies: Pure Node.js data processing.
- No Network Egress: Processing is completely local and deterministic.
- Prefer event identifiers and timestamps over raw payloads. Receipt logs can expose transactions or customer data; minimize them and delete datasets and stores under your retention policy.
- Support owner: Mehdi Badawi through the Apify Store support channel, with an initial-response target of two business days.