Guia
Soft Kill: degrade com elegância antes que a fatura degrade você
21 de outubro de 2026 · 4 min de leitura
Em vez de desligar o projeto inteiro, deixe seu app desligar as partes caras quando os gastos ultrapassarem um limite. O que degradar e como implementar.
A ideia
Um kill switch que desconecta o faturamento protege seu bolso tirando o app inteiro do ar, e o Google avisa que ele pode deixar recursos "irretrievably deleted" ("excluídos de forma irrecuperável") (detalhes). Um Soft Kill é o passo anterior: quando os gastos ultrapassam um limite, seu próprio app é avisado para desligar as partes caras e manter o resto funcionando.
Os usuários podem perder recursos de IA, processamento de imagens ou atualizações em tempo real por um tempo. Eles não perdem o app, e você não perde seus dados.
O que degradar, passo a passo
Escolha alguns níveis e associe cada um a um limite do orçamento:
- 50%: pause jobs em lote, exportações pesadas e tudo o que pode rodar amanhã.
- 80%: desligue os recursos que mais custam por usuário (chamadas de IA, transcodificação de vídeo, listeners em tempo real), com uma mensagem amigável.
- 100%: modo somente leitura ou de manutenção.
- Acima disso: o Hard Kill, para quando degradar não foi suficiente.
Como implementar
O padrão comum é uma flag que seu app lê (Remote Config, um documento do Firestore ou uma variável de ambiente) e um endpoint pequeno e autenticado que a altera. O que quer que envie o sinal precisa ser verificável, senão qualquer pessoa poderia desligar seus recursos.
Com o FireShield, o sinal é um webhook assinado com HMAC-SHA256. Seu endpoint verifica o timestamp e a assinatura e então degrada por nível:
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");
}O guia completo, com código de verificação para Node, Python, Go, Java e PHP, está em Webhooks de Soft Kill.
Por que é melhor do que um único kill switch
- Você pode configurá-lo baixo. Como não derruba o app, um Soft Kill pode disparar em 50% sem que ninguém tema isso.
- Ele ganha tempo. O atraso dos relatórios continua existindo, mas a parte cara do tráfego para enquanto você investiga.
- Funciona com picos, não só com orçamentos. No plano Pro, uma regra de pico de uso (por exemplo, leituras do Firestore em 10 vezes o nível normal) pode enviar o mesmo webhook minutos depois do início do pico, com o serviço que disparou no payload.
