Open source · API integrations

Webhook Replay Harness

Replay sanitized webhook fixtures against an in-process mock receiver. Inspect retry, ordering and duplicate handling under virtual time, without sending a request to a live endpoint.

v0.1.0 · Node.js 22+ · MIT

Browse source and run locally · View v0.1.0 release

Compare two public fixture runs

Clone the repository and run these commands from its root with Node.js 22 or newer. Both plans are checked-in synthetic examples.

Retries and duplicate handling

node bin/webhook-replay-harness.mjs --plan examples/clean/plan.json

The clean fixture replays four events. Three are delivered; one repeated event ID is deduplicated. One delivery retries, and the run passes with zero errors, one warning and one informational finding.

Inspect the passing fixture

Refused targets and exhausted attempts

node bin/webhook-replay-harness.mjs --plan examples/broken/plan.json

The deliberately broken fixture contains eight events and exits 1 with seven errors. Four targets are refused before any attempt; two deliveries fail after their allowed attempts. The report identifies each refusal or failed delivery without contacting the named hosts.

Inspect the failing fixture

Monochrome concept of webhook events passing through a local retry and duplicate-handling workflow
Generated concept illustration. The outcomes above come from public synthetic fixtures, not traffic to Edilec or a client endpoint.

What this local replay can establish

The receiver is an object inside the same process. The CLI does not send network requests, connect to a live webhook service, verify signatures, prove production delivery, or measure real-world latency. Fixture bodies and targets must be sanitized before local use. Results describe only the supplied plan and mock receiver behavior.

Read the exact replay rules and limits

Continue the integration review

Plan safer webhook retries and duplicate handling

Discuss an API integration test and release workflow with Edilec. Share only information you are permitted to disclose.

Discuss an integration workflow