Java ( с либами ) против Node.js, что выбрать для вебсервиса?
В Spring 5 есть WebFlux, который работает поверх Netty. А Netty это такой замечательный асинхронный фреймворк, про который один из инженеров Netflix'а писал, что у них один инстанс держит в среднем 20 000 одновременных соединений, пропуская через себя 40 Гбит/с трафика. На хабре ещё была статейка про написанную на Netty систему управления IoT-устройствами, которая обрабатывает 980 000 соединений с секунду, работая при этом на двух DO'шных VPS'ах за 20 и 40 баксов в месяц.
Крутость асинхронности - это, к сожалению маркетинг. Нода однопоточная, асинхронность - это так, чисто разделение вашего пользовательского кода и операций ввода/вывода. Да, есть форки, но это все равно отдельные процессы без общей памяти, да в es9 есть shared memory, но это на порядки более куцее решение, чем говорят о нем.
Асинхронный код для нано сервисов может быть и не плох, исключительно за счет скорости имплементации, но на лонг ране - это домоклов меч. Банально, у вас в одном из промисов происходит исключение, как вы определите что не так? Только догадки, так как это произойдет в следующем тике, а там основная часть стектрейса уже потеряна. Я уже молчу про кровь из глаз при покрытии асинхронного кода тестами.