As duas formas de impedir que duas gravações simultâneas se atropelem: detectar o conflito com coluna de versão, ou evitar travando a linha. Com SQL e Spring Data JPA. Também caiu aqui: lost update, FOR UPDATE com NOWAIT e SKIP LOCKED, deadlock e como preveni-lo, níveis de isolamento do Postgres, e quando um único UPDATE condicional dispensa os dois.
Por que um serviço com virtual threads congela sem erro no log: pinning por bloco synchronized, com CLOSE_WAIT como rastro. Também caiu aqui: socket e estados TCP, platform e carrier thread, thread dump e JFR, deslocamento de gargalo, bulkhead e circuit breaker (com código Java para rodar), backpressure, Scoped Values e lei de Little.
O que fazer quando a captura no parceiro passa e a gravação no seu banco falha: gravar a intenção antes de causar o efeito. Também caiu aqui: o problema da escrita dupla, tabela outbox e relay, conciliação como rede de segurança, CDC, event sourcing e por que 2PC é rejeitado.
Como garantir que um retry não cobre o cliente duas vezes: chave de idempotência e restrição única no banco, em vez de verificar antes de gravar. Também caiu aqui: condição de corrida do tipo verifica-e-age, entrega pelo menos uma vez, e as alternativas de bloqueio pessimista e otimista.
O que 12 artigos ensinam sobre construir ledgers de grau financeiro: registro append-only, double-entry como invariante de banco, saldos materializados, idempotência, e conciliação como entregável de engenharia — com exemplos em Java.
Como o SNS descarta mensagens na própria infraestrutura, antes de chegarem à fila: atributos de mensagem, filter policies por assinatura, e por que isso reduz processamento e custo no consumidor.
Arquitetura, código e aprendizado contínuo.