I am looking for examples of how to best use Istio / Envoy retries taking into account a services idempotent endpoints. The understanding being that retries for POST / DELETE verbs can be dangerous in cases where a connection was broken during a service call, but that service call may already be successfully completed or still ongoing. Without the idempotent endpoints and correct use of them, retries may cause problems.
I am thinking in terms of generation of idempotent ids for use in headers. Is there any concept in Istio / Envoy of a per call (plus that calls retries) idempotent id and map that to a header that the service might use.
If anyone has any details / examples of some idempotent endpoints + Istio / Envoy working nicely together it would be great, with the goal of minimizing the work that any calling service has to do (ideally it wouldn’t need to know about retries happening or idempotent ids being generated and used).