Guía
Soft Kill: degrada con elegancia antes de que lo haga la factura
21 de octubre de 2026 · 4 min de lectura
En lugar de apagar todo el proyecto, deja que tu app apague sus partes caras cuando el gasto supera un umbral. Qué degradar y cómo conectarlo.
La idea
Un kill switch que desconecta la facturación protege tu cartera dejando toda tu app fuera de línea, y Google avisa de que puede dejar recursos "irretrievably deleted" («eliminados de forma irrecuperable») (detalles). Un Soft Kill es el paso previo: cuando el gasto supera un umbral, se le indica a tu propia app que apague sus partes caras y mantenga el resto funcionando.
Los usuarios pueden perder durante un tiempo las funciones de IA, el procesamiento de imágenes o las actualizaciones en tiempo real. No pierden la app, y tú no pierdes tus datos.
Qué degradar, paso a paso
Elige unos pocos niveles y asocia cada uno a un umbral del presupuesto:
- 50%: pausa los trabajos por lotes, las exportaciones pesadas y todo lo que pueda esperar a mañana.
- 80%: desactiva las funciones que más cuestan por usuario (llamadas a IA, transcodificación de vídeo, listeners en tiempo real), con un mensaje amable.
- 100%: modo de solo lectura o de mantenimiento.
- Por encima: el Hard Kill, para cuando degradar no fue suficiente.
Cómo implementarlo
El patrón habitual es un flag que lee tu app (Remote Config, un documento de Firestore o un valor de entorno) y un endpoint pequeño y autenticado que lo cambia. Lo que envíe la señal debe ser verificable, o cualquiera podría apagar tus funciones.
Con FireShield, la señal es un webhook firmado con HMAC-SHA256. Tu endpoint comprueba la marca de tiempo y la firma, y luego degrada por niveles:
const event = JSON.parse(rawBody); // after verifying X-FireShield-Signature
if (event.event === "soft_kill") {
if (event.thresholdPercent >= 100) await setMode("maintenance");
else if (event.thresholdPercent >= 80) await setMode("no-ai");
else await setMode("pause-batch");
}La guía completa, con código de verificación para Node, Python, Go, Java y PHP, está en Webhooks de Soft Kill.
Por qué es mejor que un único kill switch
- Puedes fijarlo bajo. Como no tumba la app, un Soft Kill puede saltar al 50% sin que nadie lo tema.
- Te da tiempo. El retraso de los informes sigue ahí, pero la parte cara del tráfico se detiene mientras investigas.
- Funciona con picos, no solo con presupuestos. En Pro, una regla de picos de uso (por ejemplo, lecturas de Firestore a 10 veces su nivel normal) puede enviar el mismo webhook minutos después de que empiece el pico, con el servicio afectado en el payload.
