Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add Mindrally/skills --skill "java-quarkus-development"
Install specific skill from multi-skill repository
# Description
Java Quarkus development guidelines for building cloud-native applications with fast startup, minimal memory footprint, and GraalVM native builds
# SKILL.md
name: java-quarkus-development
description: Java Quarkus development guidelines for building cloud-native applications with fast startup, minimal memory footprint, and GraalVM native builds
Java Quarkus Development Best Practices
Core Principles
- Write clean, efficient, and well-documented Java code using Quarkus best practices
- Focus on fast startup and minimal memory footprint via GraalVM native builds
- Leverage Quarkus extensions for common functionality
- Design for containerized and serverless deployments
- Follow SOLID principles and microservices architecture patterns
Development Workflow
Quarkus Dev Mode
- Use
quarkus devfor rapid iteration with live reload - Leverage continuous testing during development
- Use Dev UI for debugging and configuration inspection
- Take advantage of Dev Services for local development
Configuration
Type-Safe Configuration
- Use
@ConfigPropertyfor type-safe configuration injection - Group related configs with
@ConfigMappinginterfaces - Validate configuration at startup
- Document configuration properties
Profile-Based Configuration
- Use
%dev,%test,%prodprefixes for environment-specific configs - Override configs via environment variables in production
- Keep sensitive values out of source control
- Use
.envfiles for local development
Dependency Injection
CDI Annotations
- Use
@Injectfor dependency injection - Use
@Namedto qualify implementations - Use
@Singleton,@ApplicationScoped,@RequestScopedappropriately - Prefer constructor injection for required dependencies
Bean Discovery
- Understand Quarkus build-time bean discovery
- Use
@IfBuildProfilefor conditional beans - Avoid reflection-heavy patterns for native builds
REST API Development
RESTEasy Reactive
- Use
@Path,@GET,@POST, etc. for endpoint definitions - Return proper HTTP status codes
- Use
@Validfor input validation - Implement exception mappers for consistent error responses
Reactive Patterns
- Use Mutiny for reactive programming
- Leverage
UniandMultifor async operations - Combine reactive with imperative code where appropriate
Data Access
Hibernate ORM with Panache
- Use Panache for simplified JPA patterns
- Leverage Active Record or Repository patterns
- Use
PanacheEntityfor entities with built-in operations - Implement custom queries with
findandlistmethods
Database Operations
- Use Flyway or Liquibase for migrations
- Configure connection pooling with Agroal
- Use reactive database clients for non-blocking I/O
Testing
JUnit 5 Integration
- Use
@QuarkusTestfor integration tests - Use
@QuarkusIntegrationTestfor native image tests - Leverage test profiles for different configurations
REST Endpoint Testing
- Use rest-assured for endpoint testing
- Test both success and error scenarios
- Verify response bodies and status codes
- Test authentication and authorization
Performance Optimization
Native Image Optimization
- Build native images with GraalVM for production
- Test native builds regularly during development
- Use
@RegisterForReflectionwhen needed - Minimize reflection usage
Memory and Startup
- Monitor memory usage in containers
- Optimize for serverless cold starts
- Use lazy initialization where appropriate
Observability
Health Checks
- Use MicroProfile Health for liveness and readiness probes
- Implement custom health checks for dependencies
- Configure Kubernetes probes based on health endpoints
Metrics
- Use MicroProfile Metrics for application metrics
- Export metrics in Prometheus format
- Add custom metrics for business operations
Distributed Tracing
- Use OpenTracing/OpenTelemetry integration
- Propagate trace context across services
- Configure sampling appropriately for production
Security
- Use Quarkus Security extensions
- Implement authentication with OIDC or JWT
- Configure CORS for web clients
- Validate and sanitize all inputs
- Use HTTPS in production
Containerization
- Use Quarkus container image extensions
- Build multi-stage Dockerfiles for native images
- Configure resource limits appropriately
- Use distroless or minimal base images
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.