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.
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?
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:
- 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(); }
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).
Test under load: Use
jdk.tracePinnedThreads=fullJVM 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
Be specific
Include numbers — users, budget, RPS — so the skill can size the architecture.
Share constraints
Compliance needs, team size, and existing stack all improve the output.
Iterate
Start with a high-level design, then ask follow-ups for IaC, cost analysis, or security review.
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.
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