💼 Valor de negocio#
Convierte «hay que desplegar a las 3 de la mañana» en «se despliega cuando esté listo», y elimina la ventana de indisponibilidad programada que el negocio venía aceptando como inevitable.
🎯 Resultado de negocio#
Permite cambiar el esquema de una tabla caliente sin ventana de mantenimiento ni 503 para el usuario final.
🧾 Qué deja como prueba#
- Contrasta
/migrate-blockingy/migrate-expand-contractconavailability_pctmedida durante la migración. - Hace visible
longest_single_lock_ms: la métrica que decide si la app se cae, distinta del tiempo total. - Expone
/migration/statecon la fase actual, el progreso del backfill y el estado del feature flag.
👀 Qué mirar al evaluarlo#
- Si
readers_failedes mayor que cero en la variante bloqueante y exactamente cero en la corregida. - Si
longest_single_lock_msbaja de la duración entera de la migración a la de un solo lote. - Si el
lock_held_mstotal es parecido en las dos: el trabajo no desaparece, se reparte.
ℹ️ Estas tres secciones se mantienen sincronizadas con
shared/catalog/cases.json, la misma fuente que alimenta al portal y al catálogo.
Caso 17 · Migración de esquema sin downtime — ⬅️ README del caso · ⚖️ Comparativa de los 7 stacks
🗺️ Contexto · 🩺 Síntomas · 🔍 Diagnóstico · 🧠 Causas raíz · 🛠️ Opciones de solución · ⚖️ Trade-offs · 💼 Valor de negocio · 🚨 Postmortem