#Java has its IO implementations. Multiple, actually. They don't have the same properties or ergonomics as #Scala's IO (e.g., flatMaps are not optimized for tail-recursion). People may not like it, but they are deployed at scale. Here's what #Spring WebFlux uses: https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html Here's the venerable #ReactiveX (#RxJava): https://reactivex.io/documentation/single.html