Достоверно известно, что некоторый API периодически отваливается по таймауту или с 5хх ошибкой, как решить?
Достоверно известно, что некоторый API периодически отваливается по таймауту или с 5хх ошибкой. Аналогов нет, заменить данный сервис нечем. Использование этого API критически важно для асинхронных задач внутри приложения. Что будем делать? Какие библиотеки и паттерны будем использовать чтобы минимизировать потери и повысить стабильность приложения?
1) Кешировать на стороне приложения, что возможно. Тут все сильно зависит от того какое это API и характер работы с ним. В вопросе это не указано.
2) При обращении к API учитывать таймаут или 500 ошибку. Повторять до успеха или признания поражения. Если на API много бекендов можно попробовать слать параллельные запросы в стиле промисов.
Если критически важная служба недоступна, то остаётся ещё вариант использовать fallback-службу. Или же брать закэшированные данные (возможно, устаревшие), как указал d-sem.
Вот тут про шаблоны: https://docs.microsoft.com/ru-ru/azure/architectur...