Publish to a topic
Your service completes one HTTP publish without synchronously waiting for every external endpoint.
Reliable HTTP event delivery
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
Your service completes one HTTP publish without synchronously waiting for every external endpoint.
A Webhook binds to the whole topic. Every new event is POSTed to its registered public endpoint.
Connection errors, timeouts, rate limits, and most 5xx responses retry. Clear content rejections go straight to dead-letter.
After fixing the receiver, replay dead letters to the original topic and Webhook delivery runs again.
Failure classes
| Condition | Handling | What to do |
|---|---|---|
| Timeout, connection error, 429, most 5xx | Brief retries, then DLQ | Return 2xx quickly and move long work to your own async process. |
| Permanent errors such as 400, 404, 410, 413, 422 | No retry; straight to DLQ | Fix the URL, payload contract, or validation before replaying. |
| 3xx redirect or address safety failure | No redirect following; some safety failures disable the Webhook | Register the final public URL. Do not rely on redirects or private addresses. |
Signatures and idempotency
X-MsgMesh-Signature is sent only when you provide a secret. Signing is not on by default.
Recompute HMAC over the raw request body. The signature currently has no timestamp or nonce, so it cannot prevent replay by itself.
Use your event ID, order number, or state transition as the idempotency key. Never assume one delivery.
Keep reading
Verify retries, dead-letter, and replay before connecting a real business system.