Remote entry y manifiesto
El remote entry es el archivo que cada remoto publica para describir qué expone y comparte; el manifiesto es la lista del host con la ubicación de cada remote entry.
Con estos dos archivos el host encuentra y carga los remotos en tiempo de ejecución.
El remote entry lo genera el build de cada remoto. En Module Federation con webpack es un archivo JavaScript, normalmente llamado remoteEntry.js. En Native Federation es un archivo JSON, remoteEntry.json. En ambos casos lista los módulos que el remoto expone y las librerías que comparte, con sus versiones.
El manifiesto pertenece al host. Asocia el nombre de cada remoto con la URL de su remote entry. El host lo descarga al iniciar, así que las URLs de los remotos no quedan fijas dentro del bundle del host.
Ejemplo
{
"orders": "https://cdn.example.com/orders/remoteEntry.json",
"invoices": "https://cdn.example.com/invoices/remoteEntry.json"
}
El mismo build del host puede ejecutarse en staging y en producción con manifiestos distintos. Para hacer rollback del remoto de pedidos, apuntas su línea a la versión anterior. El host no cambia.
Confusión frecuente
El remote entry es pequeño, y es fácil equivocarse con su caché. Su nombre de archivo se mantiene entre despliegues, mientras que los chunks que referencia tienen nombres con hash. Si un CDN o el navegador guarda el remote entry en caché por mucho tiempo, los usuarios siguen cargando la versión anterior, o una mezcla de un entry viejo con chunks que ya no existen.
Sirve el remote entry y el manifiesto con una caché corta o con revalidación, y guarda en caché por mucho tiempo los chunks con hash. El manifiesto también es un punto de control. Quien puede editarlo decide qué código corre en producción, así que protégelo como cualquier otra credencial de despliegue. En microfrontends está el diseño completo.
Por qué importa. Estos archivos deciden qué versión de cada microfrontend recibe el usuario. Los canary releases, la configuración por ambiente y el rollback de un solo remoto se hacen cambiándolos.
Términos relacionados
¿Planeas una migración o una plataforma de microfrontends?
En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.
Escríbeme por LinkedIn