Artigos — página 2
27 artigos publicados
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).Kubernetes CronJob — concorrência, retries e tempo máximo de execução
Os campos que protegem rotinas agendadas:
concurrencyPolicy,startingDeadlineSeconds,activeDeadlineSeconds,backoffLimit,restartPolicyetimeZone, e o que eles não garantem.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
LogstashEncodere o suporte nativo do Spring Boot 3.4+ (ECS, Logstash e GELF), com saídas reais, comparativo e critério de escolha.SIGTERM e SIGKILL — o ciclo de término de um pod no Kubernetes
Como o Kubernetes encerra um pod:
SIGTERM,SIGKILLe grace period, a corrida com os endpoints que opreStopresolve, exit codes, o graceful shutdown do Spring Boot e a pegadinha do PID 1.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.
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.
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.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.
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.
Java 25 (LTS) — arquivos-fonte compactos, Scoped Values, cache AOT e criptografia pós-quântica
Do Java 22 ao 25, para quem vem do Java 21: arquivos compactos,
import module, construtores flexíveis, Scoped Values, cache AOT, headers compactos, criptografia pós-quântica e as 66 JEPs.Java 21 (LTS) — virtual threads, pattern matching e Sequenced Collections
O que mudou do Java 17 ao Java 21: virtual threads, pattern matching para
switch, record patterns, Sequenced Collections, ZGC geracional e as 38 JEPs do Java 18 ao 21, com a versão em que cada recurso chegou.Java 17 (LTS) — records, sealed classes, text blocks e switch expressions
Do Java 12 ao 17, versão a versão: records, sealed classes, text blocks, switch expressions, pattern matching para
instanceof, ZGC e Shenandoah em produção e o que quebra vindo do Java 11.
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).Kubernetes CronJob — concorrência, retries e tempo máximo de execução
Os campos que protegem rotinas agendadas:
concurrencyPolicy,startingDeadlineSeconds,activeDeadlineSeconds,backoffLimit,restartPolicyetimeZone, e o que eles não garantem.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
LogstashEncodere o suporte nativo do Spring Boot 3.4+ (ECS, Logstash e GELF), com saídas reais, comparativo e critério de escolha.SIGTERM e SIGKILL — o ciclo de término de um pod no Kubernetes
Como o Kubernetes encerra um pod:
SIGTERM,SIGKILLe grace period, a corrida com os endpoints que opreStopresolve, exit codes, o graceful shutdown do Spring Boot e a pegadinha do PID 1.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.
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.
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.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.
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.
Java 25 (LTS) — arquivos-fonte compactos, Scoped Values, cache AOT e criptografia pós-quântica
Do Java 22 ao 25, para quem vem do Java 21: arquivos compactos,
import module, construtores flexíveis, Scoped Values, cache AOT, headers compactos, criptografia pós-quântica e as 66 JEPs.Java 21 (LTS) — virtual threads, pattern matching e Sequenced Collections
O que mudou do Java 17 ao Java 21: virtual threads, pattern matching para
switch, record patterns, Sequenced Collections, ZGC geracional e as 38 JEPs do Java 18 ao 21, com a versão em que cada recurso chegou.Java 17 (LTS) — records, sealed classes, text blocks e switch expressions
Do Java 12 ao 17, versão a versão: records, sealed classes, text blocks, switch expressions, pattern matching para
instanceof, ZGC e Shenandoah em produção e o que quebra vindo do Java 11.