I'm attempting to perform an asynchronous operation using Project Reactor's Mono.fromCallable(Callable) and I noticed that, in my test case, it appears to be running on the calling thread. Is it documented somewhere that Mono.fromCallable(Callable) uses the calling thread by default?
I see from the Reactor reference guide best practices I should do something like the following:
Mono blockingWrapper = Mono.fromCallable(() -> {
return /* make a remote synchronous call */
});
blockingWrapper = blockingWrapper.subscribeOn(Schedulers.boundedElastic());
But I don't see anywhere that Schedulers.immediate() is used by default. Why not default to Schedulers.boundedElastic()?