rockclaver/systemcraft

webhook-provider

Build a platform that emits signed webhooks — HMAC signing, retry policy, circuit breaking, fan-out, and event schema versioning. Use when building outbound webhooks, a webhook delivery system, or an event notification platform.

First seen Jul 3, 2026

Installation

$ npx skills add rockclaver/systemcraft --skill webhook-provider

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from rockclaver/systemcraft · top by installs.

npx skills add rockclaver/systemcraft

Browse all from rockclaver/systemcraft

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,099 B
  • docs SUMMARY.md 254 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Webhook Provider

Emit events to customer endpoints reliably, securely, and observably. Consuming webhooks is covered by idempotent-financial-workflows. Signing formulas and event schema template are in [REFERENCE.md](REFERENCE.md).

Payload Signing

  • Sign: HMAC-SHA256(secret, "v1:" + timestamp + ":" + raw_body)
  • Header: X-Webhook-Signature: t=<unixts>,v1=<hexdigest>
  • Timestamp in the signed string prevents replay attacks.
  • Dual-secret verification during rotation (old + new accepted for 24 h).
  • Ed25519 option: publish a public key — customer verifies without a shared secret.

Delivery & Retry

  • Success = any 2xx within timeout (30 s recommended).
  • Retry on 4xx (except 410), 5xx, timeout, network error.
  • Backoff + jitter: 30 s → 5 min → 30 min → 2 h → 8 h → 24 h.
  • After max retries: dead-letter queue + dashboard + optional alert.
  • On 410: auto-disable the endpoint. Never retry 2xx.

Endpoint Health & Circuit Breaker

Track success/failure ratio over a sliding window (last 100 deliveries). Above threshold (e.g. >50% for 1 h): disable, notify customer, require explicit re-enable. On re-enable, replay dead-lettered events (bounded, customer-configurable window).

Ordering & Idempotency

  • At-least-once delivery; include idempotency_key in every payload — customers must deduplicate.
  • Per-resource delivery queue keyed by resource ID; cross-resource order not guaranteed (document this).
  • Monotonic sequence per resource so consumers detect gaps.

Event Schema

Fields: id, type (e.g. invoice.paid), createdat (ISO 8601 UTC), apiversion, idempotency_key, data. Emit a new event type for breaking changes — never mutate an existing schema. Publish an AsyncAPI/OpenAPI catalog (template in REFERENCE.md).

Fan-Out

Event → internal bus (Kafka, SQS, Postgres LISTEN/NOTIFY) → delivery worker per subscription. Never deliver synchronously from the originating handler. Outbox: write the event in the same DB transaction as the state change; a relay publishes to the bus.

Customer Controls

  • Register endpoint URL; select subscribed event types.
  • Delivery log with request + response bodies (retain 72 h); manual replay of any event.
  • Test-mode ping on registration; pause/resume without losing queued events.

Testing

  • Unit: HMAC sign/verify; retry backoff math.
  • Integration: tunnel (ngrok, Hookdeck); emit a test event; assert signature verifies.
  • Failure: 500 → retry fires; 410 → endpoint disables.
  • Replay: disable, emit events, re-enable, assert ordered delivery of all missed events.

Guardrails

  • Never log raw bodies beyond retention (PII risk); never deliver synchronously (latency cascades).
  • Never reuse idempotency keys across event types; document retry and ordering guarantees explicitly.