Skip to content
10 / 15

Как отдавать пользователю частичный результат вместо ошибки, когда часть системы недоступна?

Сначала функции делят на критичные и необязательные: без оформления заказа страница бессмысленна, без блока рекомендаций — вполне работает. Дальше для каждой необязательной части заранее готовят запасной путь: значение по умолчанию, устаревшие данные из кэша, урезанный ответ, скрытый блок, приём запроса с обработкой позже. Переключение делают быстрым и управляемым — предохранителем автоматически и фича-флагом вручную, чтобы отключить тяжёлую функцию без выката. Два обязательных условия: деградация должна быть видна в метриках, иначе система тихо работает в урезанном режиме месяцами, и деградировать нельзя то, что связано с деньгами, правами и безопасностью — там честная ошибка лучше неверного ответа.

Как отдавать пользователю частичный результат вместо ошибки, когда часть системы недоступна? | JScriptiser