@tipsy I believe that a completable future guarantees a new jvm thread, whereas the suspend will be scheduled on the Coroutine common pool, so the performance difference will depend on the common pool load vs the time it takes to start and execute a new JVM thread