Interview frequency: …
Short answer
Put the timeout at the external boundary, and make retry limited and conditioned on transient errors, with backoff and without repeating dangerous side effects.
Explanation
Set a time budget for the attempt, log the reason for the interruption, and do not retry a non-idempotent POST without an idempotency key or a clear contract. Do not let every UI decide its own retry policy.
Common mistakes
- An immediate retry with no limit, which increases the load.
- Hiding a timeout as if it were an empty response.