Skip to main content

Expanding the Horizon: Quarkus and Micronaut Support in TeaQL

· 3 min read
TeaQL Team
Core Team

We're thrilled to announce that TeaQL's code generation engine has expanded beyond its initial Spring Boot roots! You can now generate fully functional, domain-driven APIs for Quarkus and Micronaut.

By introducing the new java-web-quarkus and java-web-micronaut generation targets, TeaQL ensures you can leverage the exact same deterministic models and generated data-access logic across the most popular cloud-native Java frameworks today.

Beyond Spring Boot

While Spring Boot remains a powerhouse in the enterprise ecosystem, the demand for lightweight, fast-starting, and memory-efficient frameworks like Quarkus and Micronaut has grown rapidly—especially in serverless and container-heavy environments.

Our goal with TeaQL is to be framework-agnostic at the domain level. By separating our core execution logic into teaql-provider-jdbc, we were able to seamlessly integrate our triple-intent runtime into the CDI-based dependency injection systems of Quarkus and Micronaut.

Architecture & Dependencies

To make this multi-framework support possible, we designed a clean separation between the domain logic and the framework-specific infrastructure. Depending on the framework you choose, your generated project will rely on a specific set of TeaQL components:

Spring Boot Architecture

When targeting java-web-spring-boot, the architecture natively embraces Spring's ecosystem:

  • teaql-provider-spring-jdbc: The core execution adapter that binds TeaQL's AST to Spring's NamedParameterJdbcTemplate.
  • teaql-data-service-sql: The standard SQL generation and metadata service.
  • Infrastructure: Standard Spring Boot starters for Web and JDBC, utilizing Spring's @Configuration and @Bean lifecycle.

Quarkus Architecture

For java-web-quarkus, we bypassed Spring dependencies entirely to keep the runtime lightweight and native-friendly:

  • teaql-provider-jdbc: A pure JDBC provider that connects directly to any javax.sql.DataSource.
  • teaql-data-service-sql: The shared SQL runtime engine.
  • Infrastructure: The generated application utilizes quarkus-resteasy-reactive-jackson for web endpoints, quarkus-agroal for high-performance connection pooling, and standard @ApplicationScoped CDI beans for registering the TeaQL runtime.

Micronaut Architecture

Similarly, for java-web-micronaut, we optimized for Micronaut's ahead-of-time (AOT) compilation:

  • teaql-provider-jdbc: The same pure JDBC provider used in Quarkus.
  • teaql-data-service-sql: The shared SQL runtime engine.
  • Infrastructure: The output project uses micronaut-http-server-netty and @Singleton bean configurations, wiring natively into Micronaut's HikariCP data sources.

Both new targets share the same underlying Java 21 java-lib-core library. Your business logic, data models, entities, and generated expressions remain 100% identical and portable.

Try It Out

Generating a new Quarkus or Micronaut project is as simple as changing the scope parameter when invoking the generator:

# For Quarkus
mvn exec:java -Dexec.mainClass="com.skynet.codegenerator.LocalGenerator" \
-Dexec.args="java-web-quarkus /path/to/output model.xml"

# For Micronaut
mvn exec:java -Dexec.mainClass="com.skynet.codegenerator.LocalGenerator" \
-Dexec.args="java-web-micronaut /path/to/output model.xml"

We believe that your domain logic should outlive any specific framework. With these additions, TeaQL continues to deliver on the promise of durable, portable, and bug-free business code.