Are notifications at least once? - Tigris

Are notifications at least once?

In the docs, it states: "If a 200 status is not received, Tigris will retry for a maximum of 3 times before giving up and marking the notifications as sent." I read that as it will retry three times and then give up without noting an error and instead it will be seen as sent even though it has not been. Am I reading this incorrectly and misunderstanding it? I am considering turning to this pattern for docs that need to move through a pipeline but not having an error state won't work for our use case.

Solution

Hey @algads the docs are updated https://www.tigrisdata.com/docs/buckets/object-notifications/

A 2xx status code acknowledges the request was successful. Any other status is treated as a failure and retried.
A 2xx status code acknowledges the request was successful. Any other status is treated as a failure and retried.

Object Notifications | Tigris Object Storage Documentation

Tigris object notifications allow you to receive notifications via a webhook.

Update from Team

I think we are retrying more, let me confirm in the team and we will get back to you.

Cool. From my usecase perspective, I don't care when it succeeds (two days later is on me with exponential backoffs reaching hours for all I care). However, it must succeed or I must receive a notification ( dropping a pointer file into a "directory" I can scan could be simple enough which eliminates the worry from your perspective whether you can even reach the notification endpoint). Anything else makes it impossible to use this for the case outlined in the blog.

Makes sense.

Let us look into it and we will get back to you soon.

Hey @algads we are at least once. Object notifications will keep retrying until the webhook returns a successful response.

That's what I expected, but docs show: "If a 200 status is not received, Tigris will retry for a maximum of 3 times before giving up and marking the notifications as sent." That's what I found confusing. If it keeps trying endlessly until it succeeds, that's perfect (obviously I would try to reduce the endlessly part on my end ...)

I'll take a look at the docs and update in the next few days. I wrote the notification code.

Solution

A 2xx status code acknowledges the request was successful. Any other status is treated as a failure and retried.
A 2xx status code acknowledges the request was successful. Any other status is treated as a failure and retried.

Object Notifications | Tigris Object Storage Documentation

Tigris object notifications allow you to receive notifications via a webhook.