FireShield
← Tutti gli articoli

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.
Logo di FireWand

Gestisci un database Firebase Data Connect?

FireWand ti permette di sfogliare, filtrare e modificare le tue tabelle con una vera console SQL, gratis per il tuo primo progetto.

Prova FireWand →