Communitygithub.com

Piyush-Nagar/coding-agents-skills

Confiabilidade é a disciplina de permanecer operacional quando as coisas ao seu redor falham — porque elas falharão. Projete para falhas parciais primeiro; os caminhos felizes se cuidam sozinhos.

O que é coding-agents-skills?

Esta skill ensina os princípios fundamentais de confiabilidade em sistemas distribuídos, abordando desde timeouts e retentativas até isolamento de dependências e degradação graciosa. Ela é útil para engenheiros de software que desejam projetar sistemas resilientes a falhas parciais, evitando que um único ponto de falha comprometa todo o serviço. A skill é independente de plataforma, podendo ser aplicada em qualquer stack tecnológica (como Kubernetes, microsserviços ou aplicações monolíticas), e funciona fornecendo regras claras e bandeiras vermelhas para identificar e corrigir vulnerabilidades em tempo de desenvolvimento ou operação. Com base em práticas comprovadas como circuit breakers, bulkheads e backups testados, ela ajuda a prevenir incidentes catastróficos e a garantir que o sistema possa ser reiniciado ou escalado sem impacto visível ao usuário.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Piyush-Nagar/coding-agents-skills/tree/HEAD/backend/core/nfr/reliability

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Confiabilidade

Confiabilidade é a disciplina de permanecer operacional quando as coisas ao seu redor falham — porque elas falharão. Projete para falhas parciais primeiro; os caminhos felizes se cuidam sozinhos.

Regras

  • Timeouts em toda chamada de saída. Sem exceções. Um timeout ausente é um incidente de exaustão de pool de threads à espera de acontecer.
  • Repetir apenas operações idempotentes. Com backoff exponencial e jitter. Repetir um POST não idempotente cria duplicatas, cobra o cartão duas vezes, envia dois e-mails.
  • Chaves de idempotência em APIs públicas mutáveis. Permite que os clientes tentem novamente com segurança em falhas de rede, sem que você precise adivinhar.
  • Interromper dependências externas com circuit breaker. Quando um downstream está doente, falhar rápido protege tanto você quanto ele. Repetições cegas transformam uma falha em duas.
  • Compartimentar caminhos críticos. Isole pools de threads / pools de conexão por downstream para que um lento não possa afogar todo o serviço.
  • Degradação graciosa é melhor que falha total. Sirva um cache desatualizado, uma resposta parcial ou um conjunto reduzido de funcionalidades em vez de um 500.
  • Sem pontos únicos de falha. Multi-AZ para cada componente com estado, múltiplas réplicas para cada componente sem estado, verificações de saúde do balanceador de carga que realmente detectam problemas.
  • Desligamento deve ser gracioso. Drene requisições em andamento, feche pools, descarregue buffers. SIGTERM → parar de aceitar → finalizar ou cancelar → sair.
  • Torne seguro reiniciar a qualquer momento. Qualquer pod individual deve poder ser morto a qualquer momento com impacto zero visível ao usuário. Se não, esse é o bug a corrigir.
  • Backups não são testados até que você os restaure. Execute um exercício real de restauração em uma agenda.

Bandeiras vermelhas

  • restTemplate.exchange(...) sem timeout configurado.
  • Um loop de repetição sem limite e sem backoff.
  • "Funciona se você reimplantar." (Estado oculto na memória.)
  • Implantações sem downtime que na verdade não são sem downtime porque requisições são perdidas no SIGTERM.
  • Runbook de recuperação de desastres que nunca foi exercitado.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Habilidades Relacionadas