Event Streaming - Webhook Handling

Delivery Failures

A webhook can fail to deliver messages if it receives a non-2xx status code for 10 consecutive delivery attempts. Each delivery attempt has an exponential backoff with a maximum period of one minute.

JSON

{
    "protocol": "system",
    "event_type": "system.connection",
    "data": {
        "target_id": "ddfc2e56-f82c-4a24-975e-427230242476",
        "disconnect_time": "2023-07-29T17:37:38.242292Z",
        "connection_time": "2023-07-29T17:39:18.725464Z",
        "previous_status": "failed",
        "new_status": "connected"
    }
}

Message Drops

Each target’s topic has a maximum size that if exceeded because of slow processing or the target being unable to accept messages will result in older messages being dropped.

If messages are dropped, a notification is sent to the user as a "dropped message" event.

JSON

{
  "protocol": "system",
  "event_type": "system.dropped.messages",
  "data": {
    "dropped_msg_count": 1,
    "pending_msg_count": 100,
    "target_id": "85366adb-7550-400a-889f-3ae46f4b7668",
    "time": "2023-07-29T16:09:31.045872283Z"
  }
}

The current maximum number of messages is 10,000. The number of buffered messages per target can be controlled using the max_buffer_count parameter.