My team is scaling a complex portal and we are debating between Webpack Module Federation and using Native Browser Modules (ESM). With the evolution of evergreen browsers, I want to know if the complexity of a build-time orchestrator is still necessary or if we should move towards a more decoupled, native approach for our micro-frontend architecture.
3 answers
As of 2024, Module Federation remains the industry standard for large teams because of its robust handling of shared dependencies. While Native ESM is beautiful in its simplicity, it often leads to "dependency hell" where different micro-apps load multiple versions of the same heavy library like Lodash or React. Module Federation’s ability to negotiate versions at runtime is a lifesaver for performance. I recently architected a fintech platform where we tried native imports, but the bundle duplication was killing our performance budgets. We switched back to a federated model to ensure only one instance of the core framework was loaded across twenty different micro-apps.
Are you primarily concerned with the runtime performance of the application, or is the developer experience and the complexity of the CI/CD pipeline the bigger pain point for your current engineering team?
I would stick with Module Federation if you are using Webpack or Rspack. The ecosystem for debugging federated modules has matured significantly, making it much easier to trace cross-app errors.
Completely agree. The tooling for Module Federation, especially with the newer Rspack integration, makes the build times incredibly fast compared to the old Webpack 5 days.
Christopher, the main issue is actually the deployment friction. Our teams are stepping on each other's toes during releases. If we go native, we hope for total independence. However, as Amanda mentioned, the performance cost of native modules can be high. A middle ground we are exploring is "Import Maps," which allows for native-like loading but with a central registry to manage library versions. It simplifies the build step while giving us the decoupling we crave without the Webpack-specific lock-in. Posted By: Daniel Foster Date: 09-01-2026