Если ваше приложение однопользовательское, то есть несколько запросов не поступают, тогда хорошо использовать обещание / callback / asyn c -await. Это потому, что NodeJs будет выполнять асинхронные операции в фоновом режиме, и вам не нужно беспокоиться о параллелизме, потому что приложение основано на однопользовательском.
Если ваше приложение многопользовательское, как веб-приложение, тогда лучше для запуска отдельного процесса из основной запущенной программы (вашего приложения), то есть для создания рабочего потока. Это связано с тем, что если два разных клиента запрашивают операцию с интенсивным использованием ЦП, ваша основная программа не зависнет, и оба запроса будут обрабатываться одновременно. Однако им немного сложно управлять, и он будет стоить дорого. Интересно то, что в книге я изучал, что процесс веб-сервера создает новый поток для каждого нового входящего запроса, чтобы создать новый сокет TCP. Этот сокет используется для однозначной идентификации этого запроса.