Pular para o conteúdo

Artigos — página 2

28 artigos publicados

  1. Desenvolvimento de Software14 min de leitura

    AOP no Spring — JDK Dynamic Proxy, CGLIB e aspects customizados

    Como o Spring aplica log, transação e métricas fora da regra de negócio: conceitos de AOP, JDK Dynamic Proxy ou CGLIB (e por que o Boot prefere CGLIB), a self-invocation e aspects próprios.

    #Spring#AOP

  2. Desenvolvimento de Software7 min de leitura

    AopUtils.getTargetClass() — desembrulhando os proxies do Spring

    Com o bean envolto em proxy, bean.getClass() devolve a classe do proxy e a leitura de anotações falha. Como AopUtils.getTargetClass() recupera a classe real e quando usar ultimateTargetClass().

    #Spring#AOP

  3. Desenvolvimento de Software9 min de leitura

    AtomicBoolean — o sinalizador thread-safe da parada graciosa

    Por que um boolean comum pode não ser visto por outra thread, quando volatile basta, por que preferir AtomicBoolean e como ligar o SIGTERM a um job sem encerrar a JVM no meio de um lote.

    #Concorrência#Kubernetes#JVM

  4. Desenvolvimento de Software8 min de leitura

    Gradle — quando usar implementation, api, compileOnly e as demais configurações

    Cada configuração de dependência do Gradle alimenta um classpath: compilação, execução, processadores de anotação ou testes. Guia para bibliotecas e starters Spring Boot, com o papel do platform (BOM).

    #Gradle#Spring

  5. DevOps9 min de leitura

    Kubernetes CronJob — concorrência, retries e tempo máximo de execução

    Os campos que protegem rotinas agendadas: concurrencyPolicy, startingDeadlineSeconds, activeDeadlineSeconds, backoffLimit, restartPolicy e timeZone, e o que eles não garantem.

    #Kubernetes#Concorrência

  6. SRE9 min de leitura

    Logging estruturado em Spring Boot — LogstashEncoder vs o suporte nativo do 3.4+

    Cada log como uma linha JSON pesquisável: o caminho clássico com LogstashEncoder e o suporte nativo do Spring Boot 3.4+ (ECS, Logstash e GELF), com saídas reais, comparativo e critério de escolha.

    #Spring#Logs#Trade-offs

  7. DevOps10 min de leitura

    SIGTERM e SIGKILL — o ciclo de término de um pod no Kubernetes

    Como o Kubernetes encerra um pod: SIGTERM, SIGKILL e grace period, a corrida com os endpoints que o preStop resolve, exit codes, o graceful shutdown do Spring Boot e a pegadinha do PID 1.

    #Kubernetes#Spring

  8. SRE8 min de leitura

    Wide events e canonical log lines — a evolução do logging estruturado

    Um evento rico em contexto por requisição, no lugar de dezenas de logs parciais: as canonical log lines da Stripe, cardinalidade e Observability 2.0, um filtro em Spring Boot e tail sampling.

    #Logs#Spring

  9. Arquitetura de Software8 min de leitura

    Overhead vs overkill — o custo de toda escolha e o exagero dela

    Overhead é o custo extra que toda decisão técnica cobra; overkill é a solução desproporcional ao problema. As seis dimensões do overhead e um critério prático para reconhecer overengineering.

    #Trade-offs#Microsserviços

  10. Segurança10 min de leitura

    JWT — a estrutura e o significado de cada campo

    As três partes de um JWT, campo a campo: headers JOSE (alg, kid…), claims registradas (iss, sub, exp…), algoritmos de assinatura e cuidados de validação. O payload não é criptografado.

    #JWT#Criptografia

  11. Dados6 min de leitura

    Data lake vs data warehouse — e onde entra o lakehouse

    Schema-on-write vs schema-on-read, ETL vs ELT, dado curado vs dado bruto: o comparativo direto entre Data Warehouse e Data Lake, por que os dois costumam trabalhar juntos e o que o Lakehouse propõe unificar.

    #Trade-offs#AWS

  12. Atualizações do Java46 min de leitura

    Guia de atualizações do Java

    Como planejar a migração entre LTS do Java: ciclo de releases, distribuições e licenças, versões mínimas do ecossistema, processo em cinco fases com rollback, segurança, desempenho, containers e CI.

    #LTS#Migração#JVM#Gradle