Java vs Go for a new high-throughput backend service
Enterprise ecosystem ↔ Simplicity and performance
Context
Pick the language for a new pricing service (p99 < 50ms, 20K rps).
Our org is 80% Java (Spring Boot). A new pricing service needs to handle ~20K rps with p99 under 50ms and scale out quickly on Kubernetes. Go keeps coming up because of memory footprint and startup time.
With virtual threads (Loom) and GraalVM native images, has the Java gap closed enough that switching languages isn't worth the cost of a second ecosystem?
Constraints
- Team
- Mostly Java devs
- Runtime
- Kubernetes
JavavsGo
Community verdict
9 engineers · 3 opinions
With these constraints, what would you choose?
One choice per engineer. You can change it any time.
Simplicity →
Trade-offs
Dimensions
- Ecosystem
- 5Java scores 5 of 53Go scores 3 of 5
- Simplicity
- 2Java scores 2 of 55Go scores 5 of 5
- Startup & memory
- 2Java scores 2 of 5
Community discussion
3 comments
Have you made this decision in production? Share your reasoning.
Sign in to commentVirtual threads made blocking I/O cheap, and a tuned Spring Boot 3 service with CDS starts in ~1s. For a team of Java developers, one ecosystem (libraries, observability, security patching) is worth a lot.
+1 on patching. Every extra language is another dependency scanner, another base image, another CVE feed to triage.
Go pods start in ~100ms and idle at 20MB. When HPA scales you from 4 to 40 pods in a traffic spike, that matters more than raw throughput.