Saltar al contenido
Esteban Padilla
Volver a los proyectos

Un backend, varias marcas, ninguna fuga entre ellas

Una plataforma headless multi-tenant y las migraciones de WordPress a Astro que sirve.

Rol
Iniciativa mía; arquitectura y construcción
Tiempo
4 meses
Stack
Next.js · Postgres · Prisma · Astro
Equipo
Yo, más un colaborador en uno de los sitios

Problema

Varias marcas vivían en instalaciones separadas de WordPress, lentas y difíciles de mantener consistentes. Necesitaban una sola fuente de verdad, sin que una marca viera nunca los datos de otra.

Restricciones

  • El aislamiento tiene que sostenerse aunque el código de la aplicación esté mal.
  • Los sitios tienen que seguir arriba cuando la API se cae.
  • Salir de WordPress no puede costar tráfico de búsqueda.

Decisiones

  • Impuse el aislamiento entre tenants en cuatro capas (un cliente con alcance que falla cerrado, prohibiciones en el lint, triggers de base de datos en cada relación y un test de guardia por relación), después de que las llaves foráneas compuestas rompieron decenas de tests con creaciones anidadas y las descarté.
  • Congelé el contrato de la API para que solo crezca y copié el kit cliente byte por byte en cada sitio, con checksum y chequeos de deriva.
  • Les di a los sitios un respaldo validado con la última copia buena y un canario de recuperación, así una página guardada en caché mientras la API estaba caída se cura sola.
  • Armé las redirecciones desde cuatro fuentes (sitemaps, la Wayback Machine, el plugin viejo de redirecciones y Search Console) e hice que el script de migración fallara ante cualquier redirección que termine en un 404.

Resultado

Los sitios salieron de WordPress hacia una sola plataforma, más rápidos y con un solo lugar para cambiar contenido.

  • LCP móvil 5,7 s → 1,7 s en uno de los sitios
  • Best Practices 78 → 100
  • Unos 4.300 tests unitarios y 400 de integración

Créditos

Uno de los sitios construidos sobre la plataforma tuvo otro colaborador.

Siguiente caso Publicar sin manual