Используйте ограниченный локальный кеш ещё действующего токена и singleflight для его обновления, чтобы запросы не штормовали Auth Service. Истёкший или недопустимый токен нельзя принимать ради доступности.
Если Redis с кэшированным токеном внешнего Auth Service недоступен, как избежать деградации, при которой каждый запрос заново авторизуется?
Используйте ограниченный локальный кеш ещё действующего токена и singleflight для его обновления, чтобы запросы не штормовали Auth Service. Истёкший или недопустимый токен нельзя принимать ради доступности.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используйте ограниченный локальный кеш ещё действующего токена и singleflight для его обновления, чтобы запросы не штормовали Auth Service. Истёкший или недопустимый токен нельзя принимать ради доступности.
Токен должен быть привязан к правильному клиенту, audience и scopes, а локальная копия — учитывать срок действия и требования отзыва. При сбое Redis ограничьте число обновлений, добавьте backoff и circuit breaker. Одновременное обновление всеми процессами можно разнести jitter, но оно не заменяет общий лимит. Если безопасного действующего токена нет, верните контролируемую ошибку вместо обхода аутентификации.