Builder Pattern para objetos com muitos parâmetros em Java
Como usar o Builder Pattern para criar objetos com muitos parâmetros legíveis, imutáveis e com validação, desde a implementação manual até Lombok @Builder e record.
Design patterns, design de sistemas, microsserviços e os blocos de grandes sistemas.
Como usar o Builder Pattern para criar objetos com muitos parâmetros legíveis, imutáveis e com validação, desde a implementação manual até Lombok @Builder e record.
Entenda e implemente duas estratégias de cache populares: cache-aside e write-through, junto com como escolher um TTL apropriado no Spring Boot 3.
Case-study de design de um sistema de armazenamento de arquivos: requisitos, modelo de dados, API de upload por chunk, compartilhamento, sincronização, tratamento de conflitos e picos de carga.
Estudo de caso de design de sistema de leilão: modelo de dados, API, processamento de bids concorrentes com conditional update, Redis Lua, proteção contra sniping e encerramento seguro de sessão.
Estudo de caso de design de sistema de códigos de desconto: não ultrapassar o limite em flash sale, usando UPDATE atômico, Lua no Redis, Kafka e mecanismo de reserva com expiração.
Como implementar distributed lock com SET NX PX e Lua script, usar Redisson com watchdog, escrever testes com Testcontainers e evitar erros comuns.
Entenda como o Kafka distribui partições entre consumer groups, quando rebalance ocorre e como reduzir o impacto do rebalance em aplicações Spring Boot.
Como usar o padrão Saga para manter consistência de dados entre múltiplos microserviços sem precisar de 2PC, com exemplos de orquestração em Java 21 e testes.
Estudo de caso projetando um sistema de rastreamento de pedidos e localização de entregadores em tempo real com Spring Boot, Kafka, Redis GEO e SSE. Análise de contenção, consistência e picos de carga.
Entenda como o PostgreSQL trata transações, os quatro níveis de isolamento, fenômenos como lost update e write skew, e como configurar e fazer retry no Spring Boot.
Estudo de caso sobre design de sistema de agendamento com modelo de slots, API, técnicas de prevenção de duplicação via conditional update e unique index, tratamento de picos de carga na abertura de agendamentos.
Use Bloom filter no Redis (via Redisson) para bloquear requisições de chaves inexistentes antes que atravessem o cache e atinjam o banco de dados.
Use Debezium para ler o WAL do PostgreSQL, enviar todas as mudanças de dados para Kafka e consumi-las com Spring Boot, sem precisar modificar o código de escrita de dados.
Estudo de caso no design de sistemas para app de caronas: encontrar motorista com Redis GEO, tratar condições de corrida no matching, manter consistência de dados e lidar com picos de carga
Estudo de caso no design de sistema flash sale: reserva atômica com Redis Lua, escrita assíncrona de pedidos via Kafka, DB como rede de segurança e reembolso de estoque após expiração.
Estudo de caso sobre design de sistema de billing de assinaturas com modelo de dados, API, fluxo de renovação, prevenção de cobranças duplicadas, outbox com Kafka e tratamento de picos de carga.
Estudo de caso sobre design de sistema de notificações push, email, SMS: modelo de dados, API idempotente, outbox, fila por prioridade, retry com backoff e proteção contra picos de carga.
Case-study de design de sistema de venda de ingressos suportando picos de tráfego. O artigo usa fila virtual em Redis, reserva atômica de assentos com SQL e processamento idempotente de pagamentos.
Estudo de caso do design de um sistema de delivery: requisitos, modelo de dados, API, máquina de estados de pedidos, distribuição para entregadores, outbox com Kafka e atualização em tempo real.
Estudo de caso do design de um sistema de pontuação de fraude em menos de 50ms. O artigo passa pelos requisitos, modelo de dados, API, verificação de velocidade no Redis, idempotência, outbox com Kafka e como lidar com picos de carga.