Quarkus Roadmap

Quarkus 3.20 Release Highlights

The Quarkus 3.20 release, which was released at the end of April, brings several significant improvements:

  • Enhanced WebSocket handling with full Jakarta EE WebSocket support
  • Default container images updated to UBI9 (for runtime and core components)
  • MicroProfile REST Client updated to version 4.0
  • Added OpenTelemetry logging support

Future Roadmap: Quarkus 3.27

The upcoming 3.27 release is targeted for Q4 2025 (around October), though this is considered an aggressive timeline. Key points:

  • Support for Langchain4j (Tech Preview)
  • Integration with IBM Runtime Systems
  • Extended support lifecycle:
    • Minor releases: ~12 months
    • Extended Update Support (EUS): +12 months
    • Extended Lifecycle Support (ELS): 5 years minimum total support

Quarkus Roadmap

Compose DevServices

Compose Services A major new feature in Quarkus 3.22, Compose DevServices provides enhanced development environment management. I plan to explore this topic in the future, but here are some topics worth mentioning:

Key Features

  • Container runtime backed by DevServices
  • TestContainers integration for service startup
  • Local environment property injection
  • Support for multiple images
  • Volume, secret, and configuration management
  • Full Podman Compose compatibility

Usage

podman compose -f compose-devservices up -d
podman compose -f compose-devservices down
podman ps

Smart Service Detection

  • Automatic PostgreSQL detection (images containing “postgres” with port 5432)
  • Custom image support with port mapping labels
  • Multi-profile support in compose descriptions
  • Service discovery and recreation for tests

Design Considerations

  • Service sharing between multiple applications
  • Improved startup times
  • Test environment reuse
  • Startup order management
  • Dynamic port mapping (default)
  • Static port mapping support when needed

Known Issues

  • Some limitations on Apple M3/M4 chips due to missing ARM SVE instructions
  • Not a Podman issue, but rather an Apple implementation limitation