Вопрос касается конкретно Play Framework, хотя концепция является общей. Я предполагаю, что заблокированный клиент прослушивает сокет, который отслеживается на стороне сервера и передается с Future [Result], так что, когда Future заканчивается, тогда ответ записывается в сокет, а затем сокет закрывается.
Может кто-нибудь поделиться более конкретным объяснением со ссылками?
Цитирование из:
https://www.playframework.com/documentation/2.6.18/ScalaAsync
Веб-клиент будет заблокирован во время ожидания ответа, но
ничто не будет заблокировано на сервере, и ресурсы сервера могут быть
используется для обслуживания других клиентов.