Engineering JavaSpring BootVirtual Threads

Java Architect

Enterprise Java: Spring Boot 3, virtual threads (Project Loom), records, pattern matching, GraalVM native images, and modernization strategies.

An enterprise Java architect current through Java 21+, covering virtual threads for high-throughput I/O services, sealed classes and pattern matching for type-safe domain modeling, Spring Boot 3 with AOT compilation, and GraalVM native image builds for sub-100ms startup. Guides teams from Java 8/11 to modern Java with incremental migration strategies.

Added Mar 20, 2026

$npx skills add johnefemer/skillfish --skill java-architect

What This Skill Can Do

Concrete capabilities you get when you install this skill.

Design domain models with Java records, sealed classes, and pattern matching

Enable virtual threads in Spring Boot 3 for high-throughput blocking I/O

Build GraalVM native images with Spring Boot AOT and reflection hints

Model REST APIs with Spring MVC or WebFlux depending on I/O profile

Migrate Java 8/11 codebases to Java 21 incrementally with backward compatibility

Design JPA/Hibernate schemas with proper fetch strategies and N+1 prevention

Real Conversations

See how the Java Architect skill responds to actual requests. These are representative examples of what your AI agent will produce.

You

We're on Spring Boot 3.2 running on Java 21. I've heard virtual threads can dramatically improve our throughput under high concurrency. How do I enable them and what should I be careful about?

Agent

Enabling virtual threads in Spring Boot 3.2 is a one-liner:

# application.yml
spring:
  threads:
    virtual:
      enabled: true

This configures Spring MVC's Tomcat executor and @Async executors to use virtual threads. No code changes needed for existing blocking controller code.

What improves: Blocking I/O operations (JDBC queries, HTTP calls, filesystem) that previously stalled platform threads now suspend the virtual thread cheaply. You can handle 10,000+ concurrent requests with standard blocking code — no reactive programming required.

What to watch out for:

  1. Pinning — synchronized blocks block the carrier thread:
// ❌ synchronized pins the carrier thread — defeats virtual thread benefits
synchronized(lock) {
    jdbcCall(); // blocks carrier thread, not just virtual thread
}

// ✅ Use ReentrantLock instead
private final ReentrantLock lock = new ReentrantLock();
lock.lock();
try { jdbcCall(); } finally { lock.unlock(); }
  1. ThreadLocal caching: Some libraries cache per-thread state in ThreadLocals (e.g., SimpleDateFormat, some DB connection pools). With millions of virtual threads, this can cause unexpected memory growth. Prefer ScopedValue (Java 21 preview) or ensure your connection pool is virtual-thread-aware (HikariCP 5.1+ is fine).

  2. Test under load: Use jdk.tracePinnedThreads=full JVM flag to log pinning events and eliminate them.

Get Started

How to install and use this skill in your preferred environment.

Skills are designed for AI coding agents (Claude Code, Cursor, Windsurf) and IDE-based workflows where the agent can read files, run scripts, and act on your codebase.

Models & Context

Which AI models and context windows work best with this skill.

Recommended Models

Claude Sonnet 4 or GPT-4o handle Java 21 features well. Verify GraalVM native image configuration against the official Spring AOT docs for specific library compatibility.

Context Window

SKILL.md ~5KB. Large Spring Boot app migrations benefit from 128K+ context to hold multiple service files simultaneously.

Pro tips for best results

1

Be specific

Include numbers — users, budget, RPS — so the skill can size the architecture.

2

Share constraints

Compliance needs, team size, and existing stack all improve the output.

3

Iterate

Start with a high-level design, then ask follow-ups for IaC, cost analysis, or security review.

4

Combine skills

Pair with companion skills below for end-to-end coverage.

Works Great With

These skills complement Java Architect for end-to-end coverage. Install them together for better results.

$ skillfish add johnefemer/skillfish --all # install all skills at once

Ready to try Java Architect?

Install the skill and start getting expert-level guidance in your workflow — any agent, any IDE.

$npx skills add johnefemer/skillfish --skill java-architect
← Browse all skills