Summary
Independent deployable UI slices — shell loads remotes (iframe, module federation, web components). Shared design system and auth contract required. Failure isolation vs integration cost. Avoid duplicate React copies breaking hooks. Routing and CSS isolation are hard parts.
Code example
async function loadRemote(name) {
const remote = await import(/* webpackIgnore: true */ `${REMOTE_URL}/${name}.js`);
return remote.mount('#shell-slot');
}
Key points
- Independent deployable UI slices — shell loads remotes (iframe, module federation, web components).
- Shared design system and auth contract required.
- Failure isolation vs integration cost.
- Avoid duplicate React copies breaking hooks.
- Routing and CSS isolation are hard parts.