Если вы решите использовать потоки, вы ограничите запуск своего приложения на одной машине.Это решение не масштабируется (или масштабируется до некоторой степени) - аппаратные ограничения всегда есть.
И различные процессы, взаимодействующие через сокеты, могут быть распределены между машинами, так что вы можете добавить практически неограниченное количество или их.Это лучше масштабируется за счет медленной связи между процессами.
Решение, какой подход является более подходящим, само по себе является очень интересной задачей.И как только вы примете решение, нет гарантии, что оно будет выглядеть глупо для ваших преемников через пару лет, когда изменятся требования или появится новое оборудование.