Guida
Soft Kill: degrada con eleganza prima che lo faccia la fattura
21 ottobre 2026 · 4 min di lettura
Invece di spegnere l'intero progetto, lascia che la tua app disattivi le sue parti costose quando la spesa supera una soglia. Cosa degradare e come collegarlo.
L'idea
Un kill switch che scollega la fatturazione protegge il tuo portafoglio mettendo offline l'intera app, e Google avverte che può lasciare le risorse "irretrievably deleted" (cioè, «eliminate in modo irrecuperabile») (dettagli). Un Soft Kill è il passo precedente: quando la spesa supera una soglia, la tua app riceve l'ordine di disattivare le sue parti costose e mantenere attivo il resto.
Gli utenti potrebbero perdere per un po' le funzionalità di IA, l'elaborazione delle immagini o gli aggiornamenti in tempo reale. Non perdono l'app, e tu non perdi i tuoi dati.
Cosa degradare, passo dopo passo
Scegli alcuni livelli e associa ciascuno a una soglia di budget:
- 50%: sospendi i job batch, gli export pesanti e tutto ciò che può girare domani.
- 80%: disattiva le funzionalità che costano di più per utente (chiamate di IA, transcodifica video, listener in tempo reale), con un messaggio cortese.
- 100%: modalità di sola lettura o di manutenzione.
- Oltre: l'Hard Kill, per quando degradare non è bastato.
Come implementarlo
Lo schema abituale è un flag letto dalla tua app (Remote Config, un documento Firestore o una variabile d'ambiente) e un piccolo endpoint autenticato che lo cambia. Qualunque cosa invii il segnale deve essere verificabile, altrimenti chiunque potrebbe spegnere le tue funzionalità.
Con FireShield, il segnale è un webhook firmato con HMAC-SHA256. Il tuo endpoint controlla timestamp e firma, poi degrada in base al livello:
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 guida completa, con il codice di verifica per Node, Python, Go, Java e PHP, è in Webhook Soft Kill.
Perché è meglio di un singolo kill switch
- Puoi impostarlo basso. Poiché non mette giù l'app, un Soft Kill può scattare al 50% senza che nessuno lo tema.
- Fa guadagnare tempo. Il ritardo di rendicontazione c'è ancora, ma la parte costosa del traffico si ferma mentre indaghi.
- Funziona sui picchi, non solo sui budget. Su Pro, una regola sui picchi di utilizzo (ad esempio, letture Firestore a 10 volte il loro livello normale) può inviare lo stesso webhook pochi minuti dopo l'inizio del picco, con il servizio interessato nel payload.
