Ответ вслух Senior Микрофронтенды и монорепо обновлено

Отказоустойчивость микрофронтендов

Вопрос

Remote-модуль «рекомендации» не загрузился (CDN недоступен или в нём ошибка). Как спроектировать хост, чтобы страница продолжила работать?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Каждый remote загружаю лениво, и ошибка загрузки не должна ронять хост: импорт оборачиваю в обработку ошибок, а рендер в Error Boundary с понятной заглушкой или просто скрываю необязательный блок. Ставлю таймаут на загрузку и один-два ретрая.

Что должно прозвучать в ответе

  • Ленивая загрузка remote с обработкой ошибки импорта

  • Error Boundary вокруг каждого микрофронтенда с понятной заглушкой

  • Таймаут загрузки и ретрай

  • Мониторинг ошибок и версий remote, алерты

  • Возможность откатить remote независимо и версионированный манифест

Что могут спросить следом

  • Как тестировать совместимость хоста и remote?
  • Как откатить сломанный remote?

Разбор

Каждый remote загружаю лениво, и ошибка загрузки не должна ронять хост: импорт оборачиваю в обработку ошибок, а рендер в Error Boundary с понятной заглушкой или просто скрываю необязательный блок. Ставлю таймаут на загрузку и один-два ретрая. Версии remote фиксирую через манифест, чтобы можно было быстро откатить конкретную часть, не трогая остальные. Ошибки загрузки и рантайма отправляю в мониторинг с меткой версии remote. А совместимость проверяю контрактными или e2e-тестами на стенде, где хост собирается с актуальными версиями remote.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.