# 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.

<span class="section-anchor" id="section-1"></span>

## 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.

<span class="section-anchor" id="section-2"></span>

## 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](https://webpack.js.org/concepts/module-federation/), [modelo de single-spa](https://single-spa.js.org/docs/getting-started-overview/) y [APIs de WU](/es/api/). Consulta la documentación de la implementación concreta si utilizas un plugin de federación distinto.

<span class="section-anchor" id="section-3"></span>

## 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](/es/docs/guides/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](/es/docs/framework/api-adapters/).

Para otra tecnología, registra `mount` y `unmount` con `wu.define`, o construye un adapter con [`createWuAdapter`](/es/docs/framework/api-adapters/#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.

<span class="section-anchor" id="section-4"></span>

## 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](/es/docs/guides/architecture/).

<span class="section-anchor" id="section-5"></span>

## 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](/es/docs/guides/shared-counter/) y la [salida de producción](/es/docs/guides/production/) como punto de partida para WU.