Неплохая коротенькая статейка о стратегиях обработки ошибок между сервисами в микросервисной архитектуре.
В двух словах :
1) Параллельная отправка запроса с неким ключом, второй сервис перед обработкой сверяет обработан ли такой запрос по ключу, если нет - выполняет и отмечает как обработанный.
2) Retry паттерн. По сути, циклически стучимся пока не ответят. Тут есть варианты с временем задержки "стука".
3) Circuit Breaker паттерн - умная маленькая прокси, которая следит за состоянием сервисов и если знает, что у сервиса проблема - не тратит время клиента, а сразу же возвращает ошибку, тем самым не "ддосит" проблемный сервис, сокращая напорядки кол-во запросов на него из других сервисов и ожидая пока он станет чувствовать себя лучше.
Post #53
75