Pular para o conteúdo

Cesar Schutz

Publico aqui o que ando estudando — lançamento do Java, código, arquitetura, IA, o que me despertar interesse. Quando o estudo rende algo que vale guardar, vira artigo.

Fechado
Ver o livro

Artigos recentes

28 artigos publicados

  1. Mais recente

    Segurança22 min de leituracódigo-fonte no GitHub

    Criptografia em repouso e em trânsito — o que é e como ativar no Postgres e no MongoDB

    De onde vem o termo, o que cada tipo protege (e o que não protege) e como ativar no RDS, no Postgres autogerenciado, no MongoDB Atlas e no MongoDB fora do Atlas.

    #Criptografia#Banco de Dados#AWS

  2. Desenvolvimento de Software15 min de leituracódigo-fonte no GitHub

    Filtros de serialização no Jackson — mascarando número de cartão nos logs

    Como usar @JsonFilter, PropertyFilter e um mixin em Object para mascarar o número do cartão e remover o CVV só no mapper de log, com a API ainda devolvendo tudo.

    #Spring#Logs#Pagamentos

  3. Arquitetura de Software41 min de leitura

    CronJob ou endpoint + fila — onde rodar o batch de uma API Spring Boot no Kubernetes

    Uma API Spring Boot no Kubernetes precisa de uma rotina agendada: CronJob com a mesma imagem e o perfil batch, ou endpoint que enfileira no SQS para a própria API consumir? Onze critérios comparados.

    #Kubernetes#Spring#Mensageria#Trade-offs

  4. Atualizações do Java46 min de leitura

    Java 29 (próxima LTS) — o que o Java 26 e o 27 já trouxeram

    O caminho do Java 25 até a próxima LTS, o Java 29 (prevista para setembro de 2027): as JEPs do Java 26 e do 27, o que ainda está em preview, exemplos de código e o que conferir na migração.

    #LTS#JVM#Concorrência#Criptografia

  5. Dados19 min de leitura

    Bloqueio otimista e pessimista — como funcionam e quando usar cada um

    Como impedir que gravações simultâneas se atropelem: coluna de versão ou trava da linha. SQL testado no PostgreSQL, Spring Data JPA, NOWAIT e SKIP LOCKED, deadlock, isolamento e o UPDATE condicional.

    #Banco de Dados#Concorrência#Spring#Trade-offs

  6. Desenvolvimento de Software24 min de leitura

    Virtual threads no Java 21 — pinning e CLOSE_WAIT

    Por que um serviço Java 21 com virtual threads congela sem erro no log: pinning por synchronized (resolvido no Java 24, JEP 491) e CLOSE_WAIT como rastro. Thread dump, JFR, bulkhead e circuit breaker.

    #Virtual Threads#Concorrência#JVM

  7. Arquitetura de Software10 min de leitura

    Efeito externo sem registro local — a cobrança passou e o banco não gravou

    A captura no adquirente passa e a gravação no seu banco falha: grave a intenção antes de causar o efeito. Escrita dupla, outbox e relay com SQL testado, conciliação, CDC, event sourcing e 2PC.

    #Pagamentos#Mensageria#Banco de Dados

  8. Arquitetura de Software12 min de leitura

    Chave de idempotência — como impedir a cobrança duplicada no retry

    Por que consultar antes de gravar não impede que um retry cobre o cliente duas vezes, e como resolver com chave de idempotência, restrição única e resposta guardada. Com SQL testado no PostgreSQL.

    #Pagamentos#Idempotência#Banco de Dados

  9. Arquitetura de Software31 min de leitura

    Arquitetura de ledger — partidas dobradas, saldos e conciliação

    O que 12 artigos ensinam sobre ledgers de grau financeiro: registro append-only, double-entry garantido pelo banco, saldos materializados, idempotência e conciliação como entregável de engenharia — com exemplos em Java.

    #Pagamentos#Banco de Dados#Idempotência

  10. Arquitetura de Software7 min de leitura

    SNS MessageAttributes e Filter Policy — filtrando mensagens antes do SQS

    Como fazer o SNS entregar a cada fila SQS só as mensagens que interessam: atributos de mensagem, filter policy na assinatura, filtro por atributo ou pelo corpo, operadores, limites e cuidados.

    #AWS#Mensageria

  11. SRE7 min de leitura

    W3C Trace Context — correlacionando logs entre microsserviços com o traceparent

    O padrão W3C que leva o mesmo ID de rastreamento por todos os serviços de uma operação: o traceparent e o tracestate, valores inválidos, a granularidade certa e o ID atravessando o outbox.

    #Logs#Microsserviços#Mensageria