Configuration
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | yes | — | Webhook endpoint URL |
method | string | no | POST | HTTP method |
headers | map | no | — | Custom HTTP headers |
batch_size | int | no | 1 | Records per request |
timeout_ms | long | no | 10,000 | Request timeout (ms) |
retry.max_attempts | int | no | 3 | Max retry attempts |
retry.backoff_ms | long | no | 1,000 | Initial backoff delay (ms) |
Payload Format
The request body format depends on thebatch_size setting.
Single-record payload (batch_size = 1)
Batched payload (batch_size > 1)
Idempotency
Every request includes anX-Idempotency-Key header derived from source metadata, allowing your endpoint to safely deduplicate retried deliveries.
| Mode | Key Format |
|---|---|
| Single record | {topic}-{partition}-{offset} |
| Batch | {topic}-{partition}-{minOffset}_{maxOffset} |
Retry Behavior
The destination retries failed requests using exponential backoff. The initial delay is set byretry.backoff_ms and doubles on each subsequent attempt, up to retry.max_attempts.
| Response | Action |
|---|---|
| 2xx | Success - record acknowledged |
| 429 | Retry, honoring Retry-After header if present; otherwise use backoff |
| 5xx | Retry with exponential backoff |
| 4xx (not 429) | Permanent failure - batch is skipped |