В системе имеется вызов стороннего API, по https, может быть как эндпоинт стороннего поставщика, так свой собственный сервис.
Как известно, https вызов может завершится неудачно, и часто рекомендуется повторять попытки несколько раз, даже термин такой придумали как resilient http calls.
А какие best practices вообще по этому поводу существуют, сколько раз повторять попытки, для каких кодов возврата и прочее
Здравствуйте, Nnova, Вы писали:
N>А какие best practices вообще по этому поводу существуют, сколько раз повторять попытки, для каких кодов возврата и прочее
Да 5хх провторять до успеха с увеличением интервала по Фибоначчи. Для 4xx не повторять вообще. Хорошо работает кольцевой буфер с уникальностью, чтобы ретраи не застилали легитимные запросы и чтобы новые запросы подменяли старые. Когда бизнес-смысл запрос теряется, запрос нужно удалять.
Например у вас есть эндпоинт, который возвращает фамилию президента и вы хотите раз в сутки эти данные у себя обновлять. И этот эндпоинт стал отвечать 502. У вас будут таймауты
1 минута
1 минута
2 минуты
3 минуты
5 минут
8 минут
...
10 часов
а дальше поыток не будет потому что пройдут сутки и придет новый запрос