Существенным ограничением node.js является то что движок JavaScript в любой момент времени может выполнять ровно один скрипт или часть скрипта, если в скрипте используются функции обратного вызова или промисы.
Если на сервере доступно несколько ядер то можно запустить кластер node.js. Проще всего это сделать при помощи PM2 см.
pm2.keymetrics.io/docs/usage/cluster-mode При этом практически не придется делать изменения в приложении. За одним исключением. Нельзя использовать глобальное состояние (например значение переменных которые определены на уровне модуля, подписку на сообщения и т.п.) т.к. это состояние будет у каждого экземпляра свое. При необходимости для синхронизации глобального состояния дополнительно приходится использовать как правило redis-сервер.