High-value capability

Webhooks

Send and receive HTTP callbacks for event-driven integrations with external services.

2-5 daysTypical timeline
$500 - $2,000Typical range
4Approaches compared

SCOPE DECISION

Does this belong
in the first release?

A capability is only essential when the product promise depends on it. Use these signals to keep the decision tied to user value.

INCLUDE WHEN

The product needs it now

  • 01
    Payment provider integration (Stripe, PayPal)
  • 02
    Third-party service integration
  • 03
    Event-driven architecture
  • 04
    Offering webhooks to customers
LEAVE OUT WHEN

The release works without it

  • 01
    No external service integrations
  • 02
    Polling is acceptable alternative

IMPLEMENTATION OPTIONS

Choose the approach
that fits the product.

The right technology depends on ownership, scale, integration depth, and how much operational responsibility the team wants to carry.

SvixWebhook sending infrastructure

Strengths
  • Managed retries
  • Monitoring
  • Multiple endpoints
  • Signing
Tradeoffs
  • Additional cost
  • Another dependency

HookdeckWebhook infrastructure platform

Strengths
  • Inbound and outbound
  • Good debugging
  • Transformations
Tradeoffs
  • Cost at scale
  • Learning curve

Custom ImplementationBuild webhook handling yourself

Strengths
  • Full control
  • No extra cost
  • Simple for basic needs
Tradeoffs
  • Retry logic needed
  • Security responsibility
  • More code

Bull/BullMQRedis-based job queue for Node.js

Strengths
  • Reliable retries
  • Rate limiting
  • Free
Tradeoffs
  • Requires Redis
  • More infrastructure

DELIVERY SEQUENCE

A practical path
through the work.

  • 01Design webhook events and payloads
  • 02Implement signature verification (incoming)
  • 03Build webhook endpoint handler
  • 04Add idempotency for duplicate prevention
  • 05Implement retry logic with backoff
  • 06Set up monitoring and alerting
  • 07Create webhook logs for debugging
  • 08Document webhook specs for consumers

WATCH FOR

Common implementation mistakes.

  • 01
    Not verifying webhook signatures
  • 02
    Missing idempotency handling
  • 03
    No retry mechanism
  • 04
    Synchronous processing (should be async)
  • 05
    Not logging webhook events
  • 06
    Exposing sensitive data in payloads

QUESTIONS

Before you commit the scope.

How do I verify incoming webhooks?+

Check the signature header using the shared secret. Most providers (Stripe, GitHub) include HMAC signatures. Never process unverified webhooks.

How should I handle webhook failures?+

Return 200 immediately, process async. Implement exponential backoff retries (1min, 5min, 30min). After max retries, alert and queue for manual review.

What should my webhook response time be?+

Respond within 30 seconds, ideally under 5. Queue longer processing. Most providers timeout and retry if response is slow.

RELATED DECISIONS

Continue mapping the release.

DISCUSS YOUR APP

Turn this decision
into working software.

Bring the product context and current scope. We will choose the approach after the release is clear.

Discuss your app