Webhook infrastructure

Webhooks that don't get lost.

Atomic Boolean delivers your product's events to customer endpoints, retries the ones that fail, and gives you a log of every attempt. Signed payloads, exponential backoff, dead-letter queue, one-click replay.

Free tier: 10,000 events per month. No card required.

send an event
# one HTTP call, signed and queued
curl https://api.atomicboolean.me/v1/events \
  -H "Authorization: Bearer $RELAY_KEY" \
  -d '{
    "type": "invoice.paid",
    "endpoint": "cus_8f21",
    "data": { "amount": 4200, "currency": "usd" }
  }'

# → 202 Accepted
# → delivery id: evt_01JQ8K2M7X
Built for teams shipping to customers who depend on the events

The part of webhooks everyone rewrites

Every product eventually needs to tell another system that something happened. The first version is a fire-and-forget POST. The second version is a queue, a retry table, a signature scheme, and a support ticket every time a customer says they missed an event.

Signed by default

Every request carries an HMAC-SHA256 signature over the raw body and timestamp. Receivers verify with a shared secret, replay windows close in five minutes.

Retries that back off

Failures retry on a 10s → 30s → 2m → 10m → 1h → 6h schedule. Jitter is applied per endpoint so a single outage doesn't produce a thundering herd when it recovers.

Dead letters, not silence

After the last attempt an event lands in a dead-letter queue instead of disappearing. Inspect the response body, fix the receiver, replay the range.

Per-endpoint visibility

Success rate, p95 latency, and last error per customer endpoint. When someone opens a ticket, you have the answer before you reply.

Three steps to first delivery

  1. 01

    Create an endpoint

    Point Atomic Boolean at a URL you control. It generates a signing secret and sends a test event so you can confirm the handshake before anything goes live.

  2. 02

    Send events

    One POST from your backend, or the SDK for Node, Python, and Go. The call returns as soon as the event is durably queued — no waiting on the customer's server.

  3. 03

    Watch, or don't

    Retries run on their own. The dashboard shows every attempt with status code, latency, and response body. Replay any window with one click.

Pricing

Priced per delivered event. Failed attempts and retries are not billed.

Free

$0 / month

  • 10,000 events per month
  • 3 endpoints
  • 7-day event log
  • Community support
Start free

Scale

$99 / month

  • 2,000,000 events per month
  • Unlimited endpoints
  • 90-day event log
  • Custom retry policy
  • Priority support
Talk to us

Questions

What happens if a customer's endpoint is down for hours?

Retries continue through the full backoff schedule — roughly 9 hours of attempts. Events that exhaust the schedule move to the dead-letter queue, where they stay until you replay or discard them.

Can I control the retry schedule?

Yes, on the Scale plan. The default schedule suits most receivers; custom schedules matter when a customer runs batch processing and only accepts traffic overnight.

How are payloads signed?

HMAC-SHA256 over timestamp + "." + raw_body, sent in a header alongside the timestamp. Verify the timestamp is within five minutes to reject replays. Secrets rotate without downtime — the old and new secret both verify during a 24-hour overlap.

Where is data stored?

Event payloads and delivery logs are stored in the EU (Frankfurt) or US (Virginia), chosen per project at creation. Payloads are encrypted at rest and purged at the end of your plan's retention window.

Ship the events, skip the queue table

Create a project and send your first event in about four minutes.

Request access

Team

Your Name

Founder

Builds the delivery pipeline. Previously backend infrastructure.

LinkedIn