Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/using-the-api/webhooks/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ During the recovery of multiple messages, we will send all messages at once, app

### Idempotency

Whilst the Codat system's webhook functionality aims for exactly once delivery of a message, due to the fact messages can be resent, this isn't always possible to guarantee. If idempotency is important for your system, we recommend making use of the HTTP request's webhook-id header, which functions as an idempotency key for a given message, (i.e remains constant across all attempts to deliver that message), and can therefore be used by your system to ensure messages are not reprocessed.
Codat's webhook service uses an at-least-once delivery model. This means every message is guaranteed to be delivered, but under certain conditions — such as high load or network instability — the same message may be delivered more than once.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Google.Passive] In general, use active voice instead of passive voice ('is guaranteed').

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Google.Passive] In general, use active voice instead of passive voice ('be delivered').

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[Google.EmDash] Don't put a space before or after a dash.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[Google.EmDash] Don't put a space before or after a dash.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Google.Passive] In general, use active voice instead of passive voice ('be delivered').

We recommend building your webhook handler to be idempotent. To do this, use the webhook-id header included in every HTTP request. This value stays the same across all delivery attempts for a given message, so you can use it to detect and discard duplicates before processing.

## Endpoint failures

Expand Down
Loading