FireShield
← Todos os posts

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

Gerencia um banco de dados do Firebase Data Connect?

O FireWand permite navegar, filtrar e editar suas tabelas com um console SQL de verdade, grátis para o seu primeiro projeto.

Experimente o FireWand →