WU vs Module Federation y single-spa
Evalúa WU como alternativa para componer microfrontends: compara carga de módulos, ciclo de vida, comunicación y responsabilidades del shell.
Qué problema estás resolviendo
Si buscas una alternativa a Module Federation, distingue compartir módulos de coordinar aplicaciones completas. WU organiza aplicaciones mediante registro, carga y ciclo de vida, y ofrece store, eventos y contratos. La elección depende de dónde quieres poner la frontera de integración.
La comparación siguiente describe WU 4.0.0, el concepto de Module Federation documentado por webpack y el modelo de aplicaciones de single-spa. No es una prueba de rendimiento ni una comparación de todos los plugins de sus ecosistemas.
Comparación de responsabilidades
| Decisión | WU Framework | Module Federation | single-spa |
|---|---|---|---|
| Unidad de integración | Aplicación con manifest y ciclo de vida | Módulos expuestos y consumidos entre builds | Aplicación con carga, activación y ciclo de vida |
| Montaje de interfaz | El host solicita mount/unmount a WU | El consumidor decide cómo renderizar el módulo | El runtime activa y monta las aplicaciones registradas |
| Dependencias compartidas | Configuración explícita del build y la carga de WU | Configuración de módulos compartidos y versiones | Decisión del entorno de carga y las aplicaciones |
| Datos entre aplicaciones | Store, eventos y contratos del runtime | Contrato que definan los módulos y sus consumidores | Contrato que definan las aplicaciones y utilidades compartidas |
Fuentes: Module Federation en webpack, modelo de single-spa y APIs de WU. Consulta la documentación de la implementación concreta si utilizas un plugin de federación distinto.
Cuándo evaluar WU como alternativa
Evalúa WU cuando quieras componer aplicaciones con un contrato común de montaje y necesites estado, eventos o servicios entre ellas. El criterio es la composición y la comunicación, independientemente de la tecnología de cada aplicación. Empieza por una capacidad con límites claros y comprueba su integración usando la guía de microfrontends.
El paquete incluye adapters para React, Vue, Angular, Svelte, Preact, Solid, Lit, Vanilla, Alpine, Qwik, Stencil, HTMX y Stimulus. Consulta sus contratos en la referencia de adapters.
Para otra tecnología, registra mount y unmount con wu.define, o construye un adapter con createWuAdapter. El contrato común permite conectar aplicaciones con el mismo framework o con frameworks diferentes.
Module Federation merece una evaluación cuando necesitas consumir módulos de otros builds y administrar dependencias compartidas a ese nivel. single-spa merece una evaluación cuando buscas aplicaciones con reglas de activación y lifecycles dentro de un root config. Ninguna elección elimina el diseño de contratos ni la operación de los despliegues.
Qué cambia al migrar
WU no interpreta automáticamente una configuración de remotes de Module Federation ni un root config de single-spa. Identifica cada entrada, crea su manifest, conecta su renderer al ciclo de vida y mueve las decisiones globales al shell. Define cómo traducirás los contratos de comunicación existentes y cómo volverás a la versión anterior si falla una entrega.
El shell mantiene las rutas globales; WU no expone un router público. Tampoco debes asumir que ejecutar módulos en el mismo contexto JavaScript crea una frontera de seguridad. Esas responsabilidades se explican en arquitectura.
Una prueba para decidir
Compara la misma capacidad en tu entorno: carga inicial, cambio de ruta, actualización de datos, desmontaje, fallo de red y nueva versión de una dependencia. Registra tamaño transferido y tiempos con el mismo navegador y caché. Usa el ejemplo de comunicación y la salida de producción como punto de partida para WU.