Если тормозит или останавливается внешний сервис (вход через платформу, оплата, подтверждение личности), всё застревает на этом этапе.
Почему Сбой или задержка внешнего сервиса авторизации или оплаты → Следствие На этом этапе идёт ожидание ответа → На экране Не удаётся войти, платёж не проходит. Те, кто уже в игре, играют нормально
Сразу после входа или техработ, При определённом действии
Ответственные
Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка сервера
Команда разработки: задачи
Ставить таймауты на внешние вызовы и показывать понятное сообщение, кэшировать результат авторизации, предусмотреть повтор платежа и порядок компенсации.
Внешние стороны: задачи
Запросить у провайдеров авторизации, оплаты и платформы подтверждение сбоя и восстановление, сообщить игрокам, что сбой на стороне внешнего сервиса.
На графике
Ступенька вверх с определённого момента · время ответа и доля ошибок внешних вызовов, число успешных входов
Где смотреть
Смотреть время ответа, долю ошибок и число таймаутов по каждому внешнему вызову (вход через платформу, оплата, подтверждение личности) и страницу статуса провайдера
Подтверждает
С момента, когда пошли неудачные входы и платежи, ошибки и таймауты одного внешнего вызова поднимаются ступенькой и держатся, а на странице статуса провайдера на то же время отмечен сбой
Опровергает
Если внешние вызовы в норме, а вход не работает, причина в самом сервере авторизации (исчерпание пула потоков, БД) или в очереди подключений ОС (backlog)
Timeouts, retries, and backoff with jitterAWS Amazon Builders' Library. Пока идёт ожидание ответа, заняты ресурсы вроде потоков и соединений, поэтому нужен таймаут, а API с побочными эффектами можно повторять, только если гарантирована идемпотентность
Circuit Breaker PatternMicrosoft Azure Вызов, который скорее всего не пройдёт, отклоняется сразу, без ожидания таймаута, чтобы время ответа оставалось в норме