Ideias & Insights

Explorando desenvolvimento AI-first, guardrails de código e a arquitetura da descartabilidade.

Sua camada de domínio importa Postgres. Seu CI não liga.

Diagramas de clean architecture ficam ótimos em um quadro branco. Veja como fazer seu pipeline de build impor a direção das dependências para que o código de domínio não possa alcançar a infraestrutura.

Alguém do seu time acabou de importar em . O PR compila. Os testes passam. O code review tem trezentas linhas, e ninguém percebe. Três meses depois, você quer…

Seu loop de retry assume que a primeira requisição falhou. Provavelmente, não falhou.

Um timeout ou crash não significa que sua requisição de API foi perdida. Veja como idempotency keys tornam retries seguros, e o padrão de armazenamento que realmente previne duplicatas.

Seu serviço quebra no meio de uma requisição . O cliente vê um timeout e faz retry. Agora você tem duas cobranças. O cliente está irritado. O banco de dados…

Um circuit breaker sem goroutines, sem timers e sem overhead em background

A maioria das bibliotecas de circuit breaker cria threads em background para fazer probe de recuperação. Você não precisa delas. Aqui está um design orientado a requests que elimina todo o overhead em background sem sacrificar a corretude.

Todo circuit breaker em produção que analisei eventualmente cria uma thread em background. Pode ser uma goroutine em Go, um em Java, ou uma task do tokio em…

O Seu Serviço Web Tem um Caminho de Encerramento Graceful. Esse é o Bug.

Software crash-only trata toda falha como um crash e toda inicialização como uma recuperação. Para serviços web, isso significa deletar sua lógica de encerramento e projetar estado que sobreviva a um kill -9.

Seu serviço web tem um handler de encerramento. Ele faz flush de buffers, fecha conexões, escreve checkpoints. Você testou isso uma vez, talvez. Em produção,…