Microservices

Decouple your services with reliable event delivery.

Replace ad-hoc HTTP calls between microservices with durable webhook delivery. Fan-out from one source to many consumers, route by event type, and guarantee delivery.

No credit card required
Up and running in minutes
99.9% uptime SLA
Order Service
POST /ingest/src_abc123
event published
GetHook
route · fan-out · retry
Pattern routes
order.*Fulfillment Svc
payment.*Billing Svc
user.*Notification Svc
*Audit Log
Fulfillment Svc
Billing Svc
Notification Svc
Audit Log
The problem

Why raw webhooks aren't enough.

The HTTP webhook protocol has no persistence, no retries, and no observability — and it shows.

Direct HTTP calls create tight coupling

Order service calls Fulfillment service directly. Fulfillment is slow. Order service times out. The order fails. The customer sees an error. The real problem was a temporary slowdown two services away.

Fan-out to N services requires N HTTP calls

An order event needs to reach fulfillment, inventory, analytics, and notifications simultaneously. Writing that fan-out logic in the order service means the order service knows about every downstream consumer — adding a new consumer requires changing the publisher.

No retry when consumers fail

Your notification service is redeploying. The order service fired the user.created event — the notification service missed it. There's no retry built into direct HTTP calls, so the welcome email is never sent.

How it works

Three steps to reliable microservices webhooks.

From raw HTTP POST to guaranteed delivery — set up in under 10 minutes.

01

Publish events from your service

Services POST events to their ingest endpoint instead of calling downstream services directly. GetHook acknowledges immediately — the publisher doesn't wait for consumers.

terminal
POST /ingest/src_order_service_token
{ "event_type": "order.created", "payload": { "order_id": "ord_abc", "customer_id": "cust_xyz", "amount": 9900 } }
02

Define routes with event type patterns

Route order.* to the fulfillment service, payment.* to billing, and user.* to notification — using glob patterns. Add a new consumer by adding a route, no publisher changes needed.

terminal
POST /v1/routes
{ "event_type_pattern": "order.*",   "destination_id": "dest_fulfillment" }
{ "event_type_pattern": "payment.*", "destination_id": "dest_billing" }
{ "event_type_pattern": "*",         "destination_id": "dest_audit_log" }
03

Each consumer retries independently

If Fulfillment fails, GetHook retries Fulfillment. If Billing fails, GetHook retries Billing. Each destination has its own retry schedule — a failing consumer doesn't affect other consumers.

terminal
GET /v1/events/{id}
# Shows per-destination delivery status:
# fulfillment: delivered (attempt 1)
# billing:      retrying  (attempt 2)
# audit_log:    delivered (attempt 1)
Benefits

Everything you need for microservices.

True service decoupling

Publishers post an event and return. They don't know who the consumers are, how many there are, or whether they succeeded.

Fan-out to N consumers

Add a new consumer by adding a route. The publisher never changes. New consumers start receiving all future events instantly.

Independent retry per consumer

Each destination retries independently. A failing notification service doesn't prevent fulfillment from receiving the event.

No Kafka or Redis required

GetHook's Postgres-backed queue provides durable, concurrent event delivery. No additional infrastructure to provision or operate.

Guaranteed at-least-once delivery

Events are persisted before the 200 OK is returned to the publisher. They cannot be lost by a consumer failure or network issue.

Dead-letter and replay

Events that exhaust all retry attempts go to dead-letter status. They can be replayed individually or in bulk after a consumer bug is fixed.

Start for free

Ready to stop losing webhooks?

Up and running in minutes. No credit card required. Connect your first source and see events flowing in real time.

No credit card
99.9% uptime SLA
HMAC signatures
AES-256 encryption