Основные признаки:
- Множество независимых команд, работающих над разными частями пользовательского интерфейса.
- Различные технологические стеки (фреймворки, библиотеки) используются для разных частей одного приложения.
- Независимое развертывание отдельных частей UI.
- Разделение приложения на домены (компоненты, виджеты, страницы), каждый из которых разрабатывается и обслуживается изолированно.
- Использование оркестрации на стороне клиента или сервера (например, с помощью Webpack Module Federation, Iframes, Single-spa) для сборки и интеграции микрофронтендов.
Косвенные признаки могут включать:
- Монорепозиторий, где каждая часть UI находится в отдельной директории с собственными зависимостями.
- Сложность в синхронизации зависимостей между различными частями проекта.
- Появление "осколков" UI при медленной загрузке или ошибках в одном из микрофронтендов.
Можно посмотреть реализацию в код