Graceful Shutdown e Signal Handling em Go: Encerramento Seguro em Produção
Como encerrar um serviço Go com segurança em produção: tratar sinais do sistema, drenar requisições e fechar workers e conexões.
60 posts
Como encerrar um serviço Go com segurança em produção: tratar sinais do sistema, drenar requisições e fechar workers e conexões.
Como construir uma API GraphQL com gqlgen na abordagem schema-first, com resolvers e DataLoader para evitar o problema N+1.
Como montar o grafo de dependências de um projeto Go em tempo de compilação com Google Wire, sem container de IoC em tempo de execução.
Como implementar exclusão mútua entre processos com locks distribuídos no Redis, incluindo o Redlock e scripts Lua para atomicidade.
Como fazer logs estruturados com o pacote slog da biblioteca padrão, com níveis, campos de contexto e saída pronta para produção.
Como io.Reader e io.Writer permitem ler e transmitir arquivos grandes com memória constante, com filepath.WalkDir e streams.
Como integrar serviços com RabbitMQ e Kafka em Go, com resiliência, desacoplamento temporal e tratamento de mensagens falhas.
Como construir middlewares em Go que envolvem http.Handler, com a arquitetura de cebola, interceptação de requisições e cuidados de produção.
Como criar fakes, stubs e spies manualmente e usar o testify/mock para isolar regras de negócio de dependências lentas ou externas.
Como organizar pacotes em Go com internal e pkg, controlar visibilidade pelas maiúsculas e gerenciar vários módulos com go.work.
Como encadear estágios concorrentes com channels em um pipeline, com fan-out para paralelizar e fan-in para juntar os resultados.
Como o compilador do Go decide entre stack e heap, o que dispara o escape analysis e por que retornar ponteiros pode pesar no GC.