advanced
Micro-frontends
Split frontend delivery by independently owned product areas only when team autonomy outweighs runtime, UX, and integration complexity.
Micro-frontends split frontend delivery by independently owned product areas — checkout, account, catalog — each with its own deploy pipeline and team. Integration happens at runtime through module federation, iframes, web components, or a shell that composes routes. The trade-off is team autonomy versus shared UX consistency, bundle duplication, cross-app navigation, and coordinated design tokens.
Choose this pattern when organizational boundaries and release cadence differ more than technical coupling. A modular monolith with feature folders is often cheaper until multiple teams block each other on every release.
On interviews: explain when you would not split the frontend, how you handle shared auth, routing, styling, and error boundaries, and what runtime integration model you picked.
Common pitfalls: splitting by technical layer instead of business capability; duplicating dependencies and design systems; ignoring performance of loading multiple apps; treating micro-frontends as a default rather than an organizational fix.
Checklist:
- Name the ownership boundary and release independence gained.
- Describe the integration mechanism and shared shell responsibilities.
- Compare bundle size, latency, and UX consistency trade-offs.
- State rollback and versioning strategy across micro-apps.