Comprehensive performance comparison of 11 Java microservice frameworks
A production-ready benchmark suite comparing 11 Java microservice frameworks under identical conditions. Get real performance data to make informed framework decisions.
Not just benchmarks - includes production Kubernetes configs, complete observability stack, and migration guides.
Throughput Comparison (requests/second @ 100 concurrent connections)
Undertow ████████████████████████████████████████ 37,808 req/s ⚡ Fastest
Armeria ██████████████████████████████████████ 35,810 req/s
Light4J ████████████████████████████████ 29,583 req/s
Micronaut ███████████████████████████████ 28,130 req/s 💾 Most Efficient
Vert.x ███████████████████████████████ 28,073 req/s
Quarkus ██████████████████████████ 26,608 req/s ☁️ Best Cloud-Native
ActiveJ ██████████████████████████ 25,429 req/s 📦 Smallest JAR
Helidon ████████████████████████ 23,340 req/s
Javalin ████████████████████ 19,853 req/s 🎨 Best DX
Netty ██████████████████ 18,159 req/s
📈 View Detailed Metrics
| Framework | Throughput | Latency (p50) | Memory | JAR Size | Best For |
|---|---|---|---|---|---|
| Undertow | 37,808 req/s | 379μs | 180 MB | 7.1 MB | Maximum performance |
| Armeria | 35,810 req/s | 435μs | 210 MB | 28 MB | Async RPC/REST |
| Light4J | 29,583 req/s | 514μs | 165 MB | 12 MB | Production APIs |
| Micronaut | 28,130 req/s | 675μs | 130 MB | TBD | Cloud-native, cost |
| Vert.x | 28,073 req/s | 603μs | 240 MB | TBD | Reactive systems |
| Quarkus | 26,608 req/s | 736μs | 140 MB | TBD | Kubernetes-native |
| ActiveJ | 25,429 req/s | 19.56ms | ~170 MB | 5.3 MB | Minimal footprint |
→ Full Benchmark Results with charts, latency distributions, and cost analysis.
| 🚀 Performance | 💾 Efficiency | ☁️ Production Ready | 🔄 Migration |
|---|---|---|---|
| 37k+ req/s peak throughput | 331 req/s/MB (Micronaut) | Full K8s manifests | Spring Boot → Micronaut in 1-2 days |
| Sub-millisecond latency | 40 MB memory (Quarkus native) | Prometheus + Grafana stack | Code migration guides |
| Real benchmark data | 75% cloud cost savings | Auto-scaling configs | 90% code similarity |
Get running in under 2 minutes:
# Clone repository
git clone https://github.com/your-org/java-framework-showdown.git
cd java-framework-showdown
# Run fastest framework (Undertow)
cd undertow-baseline
docker compose up -d
# Test it
curl http://localhost:8088/health
# Response: {"status":"UP"}
# Run benchmark
cd ../performance-tests
./test-app.sh undertow-baseline 8088→ Detailed Getting Started Guide for first-time setup, prerequisites, and tutorials.
Choose your journey based on your goal:
|
Starting development or exploring frameworks Quick Links: |
Choosing framework for new project Quick Links: |
|
Need production deployment configs Quick Links: |
Moving from existing framework Quick Links: |
| Guide | Description | Read Time |
|---|---|---|
| 📦 Frameworks | Detailed info on all 11 frameworks | 10 min |
| 📊 Benchmarks | Performance results with charts | 8 min |
| 🚀 Getting Started | First-time setup & tutorials | 5 min |
| 🎯 Decision Guide | Choose the right framework | 7 min |
| Guide | Description | Read Time |
|---|---|---|
| 🚄 GraalVM Native | Native compilation (100x faster startup) | 12 min |
| 💾 Memory Analysis | Deep dive into memory usage | 15 min |
| 🔄 Migration Guides | Step-by-step framework migration | 10 min |
| ☁️ Deployment | Docker, K8s, cloud platforms | 10 min |
| Resource | Description |
|---|---|
| ☸️ Kubernetes | Production-ready K8s manifests with HPA, monitoring |
| 📊 Observability | Prometheus, Grafana, Jaeger, Loki stack |
| 🧪 Performance Tests | Benchmark methodology & scripts |
| 🔬 Detailed Analysis | Comprehensive performance comparison |
Not sure where to start? Here are our top picks for common scenarios:
| Scenario | Recommendation | Why |
|---|---|---|
| 🚀 Maximum Performance | Undertow or Armeria | 35k+ req/s, sub-millisecond latency |
| 💰 Cost Optimization | Micronaut or Quarkus | 30-50% lower cloud costs, efficient memory |
| ☁️ Cloud-Native/K8s | Quarkus or Micronaut | Built-in K8s support, fast startup |
| 🔄 Reactive/High Concurrency | Vert.x or Armeria | Event-driven, handles 10k+ connections |
| 🎨 Developer Experience | Javalin | Simple API, low learning curve |
| 🍃 Spring Boot Alternative | Micronaut | 90% similar, 40% faster, 30% less memory |
| ⚡ Serverless/FaaS | Quarkus Native | 15ms startup, 40 MB memory |
→ Full Decision Guide with detailed comparison and use cases.
Unlike toy benchmarks, this project provides:
✅ Real-world conditions: All tests on identical hardware, same workload
✅ Production configs: K8s manifests, monitoring, scaling configs
✅ Complete stack: Not just code - includes deployment, observability, migration
✅ Maintained: Regular updates with latest framework versions
✅ Transparent: Full methodology documented, reproducible results
✅ Practical: Focused on metrics that matter (cost, latency, throughput)
We welcome contributions! Here's how you can help:
- 🐛 Report Issues: Found a bug or inaccuracy? Open an issue
- 📊 Add Benchmarks: Have test results from different hardware? Share them!
- 🔧 Improve Code: Optimize implementations, fix bugs
- 📖 Enhance Docs: Improve guides, add examples
- ⭐ Star the Repo: Show your support and help others discover this project
→ Contributing Guide for detailed guidelines.
- 11 Java Frameworks tested
- 90+ Test Scenarios across all frameworks
- 6 Comprehensive Guides (40k+ words)
- Production K8s Configs for top frameworks
- Complete Observability stack included
- Last Updated: August 24, 2026
- Test Date: August 23, 2026
- 💬 Discussions: GitHub Discussions
- 🐛 Issues: Report bugs or request features
- 📧 Contact: For business inquiries or collaborations
This project is licensed under the MIT License - see the LICENSE file for details.
Individual frameworks have their own licenses. Check each framework directory for details.
⭐ Star this repo if it helped you make a better framework decision!
Built with ❤️ by the community • Report Issues • Contribute