Reference
Reliability
What WhaBuzz promises about delivery and speed, what each promise means for your code, how we prove it, and the live figures.
#The promises
| Promise | What it means for your code | How we prove it |
|---|---|---|
Meta's webhook gets our 200 only after the event is stored | If Meta saw a 200, the event exists in your log. Nothing Meta delivered to us is acknowledged and then lost. | A staging test kills the event store mid-accept and checks that no 200 is sent for an unstored event. |
Retry ladder: +30 s, 1 m, 2 m, 5 m, 10 m, 20 m, 40 m, 1 h, then hourly up to 24 h. After 5 straight failures the endpoint's circuit opens. After 24 h a delivery is marked dead and we email you. | A slow or broken endpoint recovers by itself. Return any non-2xx and we try again; you never need your own retry queue for our deliveries. | A test sink in a failing mode receives attempt 4 at about 3.5 minutes. A sink that always answers 500 reaches dead at 24 h and the email arrives. |
| Replay any event for your whole retention window (30, 90, 180 or 365 days) | A bug on your side is recoverable. Replay after the fix and the event arrives again with the same id, seq and dedupe_key, plus a new delivery attempt id. | A test replays a 31-day-old event on a 90-day tenant and compares the identifiers. |
| Delivery SLO: 99.9% of events reach a healthy endpoint within 60 s. Inbound own time p99 under 30 ms. | Events arrive quickly and our own processing adds little to your latency. "Own time" excludes time spent waiting on Meta or on your endpoint. | The figures below, measured from production metrics, plus your own numbers in the console. |
At-least-once delivery, never silently dropped. Every envelope has dedupe_key and seq. | You may see an event twice, never zero times. De-duplicate on dedupe_key; spot a gap by watching seq. | A CI replay checks that every field Meta sent is present in raw. Gap detection is documented with code. |
| Meta's errors, verbatim | When Meta rejects a request you see Meta's own error body under error.meta, unchanged, next to ours. | CI sends known-bad requests through the sandbox and compares Meta's body byte for byte with ours. |
See also: Webhooks for the retry and replay mechanics, Errors for the error.meta shape, and Retention for the replay window.
#Live figures
| Measure | Target | Last 24 h | Last 30 days |
|---|
The live figures could not be loaded right now. The targets are listed in the Markdown version of this page; try again in a minute.
#Look up a request
Every response carries a request_id. Look it up with GET /v1/requests/{request_id} or in the console's Logs page. See Errors.
This page as Markdown: /reliability.md. All docs in one file: /llms-full.txt.