Reliable HTTP event delivery

A temporary receiver failure should not erase the event.

Publish to a topic and MsgMesh POSTs to your endpoint. Transient failures retry; permanent failures and exhausted retries enter a dead-letter queue for later replay.

Delivery flow

Store the event before facing an unreliable network.

Publish to a topic

Your service completes one HTTP publish without synchronously waiting for every external endpoint.

The platform delivers the Webhook

A Webhook binds to the whole topic. Every new event is POSTed to its registered public endpoint.

Classify the failure

Connection errors, timeouts, rate limits, and most 5xx responses retry. Clear content rejections go straight to dead-letter.

Inspect and replay the DLQ

After fixing the receiver, replay dead letters to the original topic and Webhook delivery runs again.

Failure classes

Not every error deserves a retry.

ConditionHandlingWhat to do
Timeout, connection error, 429, most 5xxBrief retries, then DLQReturn 2xx quickly and move long work to your own async process.
Permanent errors such as 400, 404, 410, 413, 422No retry; straight to DLQFix the URL, payload contract, or validation before replaying.
3xx redirect or address safety failureNo redirect following; some safety failures disable the WebhookRegister the final public URL. Do not rely on redirects or private addresses.

Signatures and idempotency

Verify the source and prevent duplicate side effects.

01

Provide a secret when registering

X-MsgMesh-Signature is sent only when you provide a secret. Signing is not on by default.

02

Verify before parsing

Recompute HMAC over the raw request body. The signature currently has no timestamp or nonce, so it cannot prevent replay by itself.

03

Keep business writes idempotent

Use your event ID, order number, or state transition as the idempotency key. Never assume one delivery.

Keep reading

Test with an endpoint that fails on purpose.

Verify retries, dead-letter, and replay before connecting a real business system.

View integration code →