Same API in Java, Go, Rust, and Kotlin — a 4-language benchmark
After 21 years of Java development, I rebuilt our short-video platform backend in Go, Rust, and Kotlin (Ktor) to make an informed decision about our production stack. Same API across all four: auth...

Source: DEV Community
After 21 years of Java development, I rebuilt our short-video platform backend in Go, Rust, and Kotlin (Ktor) to make an informed decision about our production stack. Same API across all four: authentication, video feed, follow system, S3 uploads, Redis caching. Here are the results. Performance summary Throughput (wrk, 200 concurrent, 10s, health endpoint) Java Go Rust Kotlin QPS 88K 100K 210K 99K Latency distribution (200 concurrent) Go Rust Kotlin p50 1.79 ms 0.70 ms 1.60 ms p99 6.13 ms 1.48 ms 15.36 ms Memory under 500 concurrent connections (RSS) Java Go Rust Kotlin Peak 372 MB 60 MB 33 MB 650 MB Cold start (binary to first HTTP response) Java Go Rust Kotlin Time 2,714 ms 69 ms 153 ms 914 ms Build time (clean, deps cached) Java Go Rust Kotlin Time 5.6s 9.4s 98.3s 14.1s Things that surprised me Kotlin nearly matches Go in throughput. Ktor 3.4 + Netty + JVM 21 Virtual Threads hit 99K QPS — within 1% of Go's 100K. JIT optimization on hot paths is real. But p99 latency (15ms) and memo