Module federation lets one build consume a module from another build at runtime, which solves a problem most applications do not have.
new ModuleFederationPlugin({
name: 'shell',
remotes: { checkout: 'checkout@https://cdn/checkout/remote.js' },
shared: {
vue: { singleton: true, requiredVersion: '^3.0.0' },
},
})
// and the failure mode: the remote is down, or its
// shared vue is 3.2 and yours is 3.0, at RUNTIME.
The technology works and the operational cost is what stops it: a build now depends on another team’s deployment at runtime, version skew in shared dependencies is a production error rather than a build error, and debugging spans two source maps. It is a real answer for an organisation with independent frontend teams and a very expensive one for a single application that wanted code splitting — which is what most people were actually looking for.