Quarkus: Framework Java para Microservicios
Llevo años viendo cómo Spring Boot se comía el mundo Java de los microservicios. Y funciona, claro. Pero cuando metes cien instancias en Kubernetes y cada una se trae 300 MB de RAM antes de responder una sola petición, empiezas a preguntarte si hay algo mejor. Ahí entra Quarkus.
¿Qué es Quarkus?
Quarkus es un framework Java que nació pensando en Kubernetes, contenedores y serverless. No es un fork de Spring ni un wrapper encima de algo existente. Es un diseño desde cero para que Java compita con Go y Node.js en arranque y memoria.
La primera vez que levanté una app de prueba arrancó en 0.8 segundos. Una app equivalente en Spring Boot tardaba 12. Ese día entendí el pitch.
Qué lo hace diferente
GraalVM es la pieza clave. Quarkus puede compilar tu aplicación a un binario nativo (Ahead-of-Time) que arranca en milisegundos y ocupa una fracción de la memoria. Si no quieres usar native image, también funciona en modo JIT con un live reload que no tiene nada que envidiarle a Spring DevTools.
Otra cosa que me gustó: soporta Jakarta EE (CDI, JAX-RS, JSON-B). Si vienes de Spring la curva es suave, pero si vienes de Java EE tradicional te vas a sentir en casa.
Por qué tiene sentido para microservicios
En serverless, el tiempo de arranque es todo. Si tu función tarda 8 segundos en arrancar, el primer usuario se va. Quarkus en modo nativo arranca en menos de 50ms. Eso cambia las reglas del juego.
En escalado horizontal, cada réplica consume RAM. Menos RAM por instancia significa más réplicas por nodo. En la nube, eso se traduce directamente en dinero. He visto despliegues donde migrar a Quarkus nativo bajó el coste de infraestructura en un 60%.
Ejemplo básico
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello from Quarkus REST";
}
}JAX-RS puro. Si has usado @RestController en Spring, esto es lo mismo con otro nombre. La diferencia la ves cuando compilas a nativo y mides.
¿Vale la pena migrar?
Depende. Si tienes una app Spring Boot funcionando bien, no la migres solo por migrar. Pero si estás empezando un microservicio nuevo, especialmente algo que va a vivir en contenedores o serverless, dale una oportunidad a Quarkus. El arranque rápido, el bajo consumo de memoria y el soporte nativo de GraalVM hacen que Java deje de pedir disculpas por ser "pesado".