Skip to content

Repository files navigation

⚡ Java Microservices Performance Benchmark

Comprehensive performance comparison of 11 Java microservice frameworks

Frameworks Tests Max Throughput License

Quick StartBenchmarksFrameworksDocumentation


🎯 What Is This?

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.

📊 Performance At a Glance

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.

✨ Key Highlights

🚀 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

🚀 Quick Start

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.

🎯 Find Your Path

Choose your journey based on your goal:

👨‍💻 I'm a Developer

Starting development or exploring frameworks

Quick Links:

🏢 I'm Making a Decision

Choosing framework for new project

Quick Links:

☁️ I'm Deploying to Production

Need production deployment configs

Quick Links:

🔄 I'm Migrating Frameworks

Moving from existing framework

Quick Links:

📚 Complete Documentation

Core Guides (Start Here)

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

Advanced Topics

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

Production Resources

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

🏆 Framework Quick Picks

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.

🌟 What Makes This Different?

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)

🤝 Contributing

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.

📈 Project Stats

  • 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

📞 Support & Community

📄 License

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 IssuesContribute

About

Reproducible Java 21+ microservice benchmark comparing Netty, Undertow, Vert.x, Armeria, Helidon, Micronaut, Quarkus, Javalin, ActiveJ and more — throughput, latency, memory, startup, Docker, Kubernetes and GraalVM.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages