تكرار السؤال: …
الإجابة المختصرة
ضع timeout عند boundary الخارجية، واجعل retry محدودًا ومشروطًا بأخطاء مؤقتة مع backoff وبدون تكرار side effects خطرة.
الشرح
حدّد budget زمنيًا للمحاولة، وسجّل سبب الانقطاع، ولا تعيد POST غير idempotent بلا idempotency key أو عقد واضح. لا تجعل كل UI يقرر سياسة retry الخاصة به.
أخطاء شائعة
- retry فوري بلا حد فيزيد الحمل.
- إخفاء timeout كأنه response فارغ.