Blog

Padrões de quem já queimou a mão

Anos debugando sistemas em produção geram padrões. Aqui documento os que mais aparecem: race conditions, filas que perdem mensagem, APIs que falham na hora errada. E como resolver.

PostgreSQLPerformance

Connection pooling no PostgreSQL com PgBouncer: quando e por que configurar

Cada conexão ao PostgreSQL consome memória e CPU. Com múltiplas instâncias da aplicação, o número de conexões explode. Veja como o PgBouncer resolve e como configurar corretamente.

4 de junho de 20268 min de leitura
MensageriaBackend

Idempotent consumers: evitando processamento duplicado em filas

Em sistemas de mensageria com at-least-once delivery, duplicatas são inevitáveis. Idempotent consumers garantem que processar a mesma mensagem duas vezes não gera efeito duplicado.

2 de junho de 20267 min de leitura
MensageriaRabbitMQ

At-least-once vs exactly-once: qual garantia de entrega escolher

Sistemas de mensageria oferecem diferentes garantias de entrega. Entenda o que at-most-once, at-least-once e exactly-once realmente significam, e por que 'effectively-once' é a abordagem prática.

30 de maio de 20268 min de leitura
RabbitMQMensageria

Dead letter queues no RabbitMQ: o que são e como usar de verdade

Mensagens que falham repetidamente precisam ir para algum lugar. Dead letter queues capturam essas mensagens para reprocessamento manual, análise e alertas: sem perder nada.

28 de maio de 20269 min de leitura
NestJSRedis

Rate limiting no NestJS com Redis: sliding window e limites por usuário

Rate limiting protege suas APIs de abuso e garante disponibilidade para todos os clientes. Veja como implementar sliding window com Redis no NestJS, com limites por IP e por usuário.

26 de maio de 20268 min de leitura
NestJSBackend

Guards, Interceptors e Pipes no NestJS: quando usar cada um

NestJS tem cinco camadas de interceptação do ciclo de vida de um request. Entenda a diferença entre Guards, Interceptors e Pipes, e onde cada um pertence na arquitetura.

23 de maio de 20268 min de leitura
NestJSBackend

Arquitetura modular no NestJS para sistemas SaaS escaláveis

A estrutura de módulos do NestJS é poderosa, mas fácil de usar errado. Veja como organizar um SaaS multi-tenant com módulos de negócio, módulos compartilhados e isolamento de tenant.

21 de maio de 202611 min de leitura
PostgreSQLBackend

Deadlocks no PostgreSQL: causas, diagnóstico e prevenção

Deadlocks travam transações silenciosamente em produção. Entenda por que acontecem, como detectar com as views do sistema, e as estratégias para eliminar de vez.

19 de maio de 20269 min de leitura
APIsBackend

Idempotência em APIs REST: o que é, por que importa e como implementar

Idempotência é a propriedade que torna APIs resilientes a retentativas. Entenda o conceito, quais métodos HTTP já são idempotentes, e como implementar nos que não são.

16 de maio de 20268 min de leitura