1. Да, через тот же RabbitMQ вы можете организовать общение ваших микросервисов. Особенно RabbitMQ будет полезен в случае, если вы сможете избежать большого количества прямых запросов к отдельным микросервисам, а сможете представить потоки данных в виде событий и их обработчиков.
2. Да, будет запущен в отдельном процессе. Это можно назвать параллельными вычислениями. :) Ну и вообще в линуксе разница между отдельным системным процессом и отдельным потоком (thread'ом) внутри одного системного процесса размыта (отличаются у них фактически только параметры создания -- есть ли общая память с какими-то другими потоками исполнения).
3. Не знаком, но знаю, что многие компании убегают с ноды, потому что не хватает производительности или запутанная модель исполнения.
Ну и вообще, если вы переживаете насчет производительности, попробуйте что-нибудь более производительное, чем нода: Erlang/Elixir, Go, .NET и так далее.
Так же попробуйте сначала написать монолитный прототип, а от него плясать в построении микросервисов -- так вы сможете четче понять свою предметную область, данные в ней и операции над ними. А микросервисы -- это скорее средство разделения ответственности в больших командах, чем способ увеличить производительность. В большинстве случаев, думаю, производительность от таких вот микросервисов только падает.