Async Was Slower Than Sync in This Spring Boot Load Test

Most developers assume one thing:

Async makes systems faster.

I decided to test that assumption using a real Spring Boot application.


Test Setup

  • Two endpoints: /sync and /async
  • Same logic: simulated IO (200ms delay)
  • Load test using JMeter
  • Scenarios: 50, 100, 200 users

Results Summary

TypeUsersP95 Latency
Sync200~216 ms
Async200~5000 ms

Key Observation

  • Sync remained stable
  • Async degraded rapidly

Throughput also showed a massive gap:

  • Sync handled significantly more requests
  • Async stalled under load

Root Cause

The issue was not Async itself, but configuration:

  • Default thread pool too small
  • Requests queued
  • Latency increased exponentially

Lesson Learned

Async is not a silver bullet.

Without proper tuning:

  • It can reduce performance
  • Increase latency
  • Lower throughput

What’s Next

In the next experiment, we will:

  • Tune thread pool
  • Re-run the test
  • Compare results again

Conclusion

Always measure.

Because performance assumptions are often wrong.