Blog

Caramelo Labs

Artigos sobre Java, Spring, Quarkus, MongoDB, CI/CD, Kubernetes e IA

Filtrar por

Java 17/21: 3 motivos pra usar Sealed Classes no seu projeto

Alguém criou uma classe nova que implementa a sua interface e ninguém avisou. Com Sealed Classes, o design fica explícito, o compilador vigia a hierarquia e o switch deixa de precisar de default.

Sealed Classes + Switch: o compilador como auditor do seu domínio

Entrou um tipo novo no sistema e ninguém atualizou aquele switch esquecido? Com Sealed Classes e Pattern Matching no Java 21, isso deixa de ser bug em produção e vira erro de compilação.

10 pods para 5 partições: a conta que o Kafka não fecha

O HPA subia pod, o lag aumentava, e ele subia mais pod ainda. O problema não estava no YAML: estava no número de partições do tópico.

jOOQ + Records: um-para-muitos em uma query só, com o operador MULTISET

Artigo da série de Records e Records Patterns com exemplo de uso no Spring com JPA.

Projeção com Records no Spring Data JPA

Artigo da série de Records e Records Patterns com exemplo de uso no Spring com JPA.

Java Moderno: Elevando o Nível com Imutabilidade, Switch Expressions e Pattern Matching

O fechamento da série Objects · Immutability · Switch · Pattern Matching: do pitfall de == vs equals() ao switch exaustivo, passando por flow scoping, guarded patterns, generics e o fim do boilerplate.

Java Internals: O Custo Cognitivo da Imutabilidade de Strings

Por que desenvolvedores experientes ainda descartam o resultado de métodos como replace() e toUpperCase()? A resposta está na semântica das palavras, não na falta de conhecimento

JDK 27 e o futuro do Java

Descubra as novidades e melhorias que estão por vir no JDK 27 e como elas impactarão o desenvolvimento em Java.

ScopedValues sucessor do ThreadLocal

ScopedValues são uma evolução do ThreadLocal, oferecendo uma abordagem mais segura e eficiente para compartilhar dados entre threads, especialmente em ambientes de alta concorrência.

Virtual Threads não são mágica: Concorrência vs Paralelismo no Java 21

Entenda o comportamento de Virtual Threads para concorrência e paralelismo.

Virtual Threads - Pinning e Saturação

Entenda o comportamento de Virtual Threads sob saturação e o impacto do pinning em cenários de alta concorrência.

Virtual Threads vs Platform Threads no Java 25

Benchmark real com PostgreSQL, HikariCP e k6 comparando throughput, tail latency e comportamento sob saturação entre Virtual Threads e Platform Threads.

Integre Quarkus com Keycloak

Garanta segurança e controle de acesso em suas aplicações Quarkus com Keycloak.

Laboratório Prático de CI/CD com Ferramentas Open Source

Automatize seu fluxo de desenvolvimento com pipelines eficientes.

Índices e Design de Schema no MongoDB

Índices não salvam um schema mal modelado. Entenda como decisões simples de tipagem impactam performance, custo e escalabilidade no MongoDB.

Auditoria de entidades JPA com Embeddables e Entity Listeners

Aprenda a implementar auditoria em entidades JPA utilizando Embeddables e Entity Listeners.

Descomplicando Kubernetes

Entenda os conceitos fundamentais de containerização e orquestração com Kubernetes.

Evoluções no Java 25

Programação Orientada a Dados (DOP)

Programação na era IA

Guia de Sobrevivência