Idempotency-Key header and you can retry without sending the same message twice or escalating twice.
Idempotent-Replayed: true header. Only successful responses are saved, so a request that failed can be retried with the same key.
Reusing a key with a different path or request body returns 409 with code conflict.