Вопрос: Какую часть сервера лучше писать на PHP/Java/Go/C#/Rust вместо Node.js?

Лучший ответ: Максим, всё описанное ниже я пишу исходя из личного опыта, с некоторыми моими утверждениями можно поспорить :)

Так или иначе, но самая ресурсоёмкая задача, почти всегда, это работа с базой.

Несколько лет назад я делал бенчмарки Python, PHP, Node, Go.
Для меня были важны две вещи:
1 - скорость ответа сервера/кол-во запросов в секунду
2 - объём сервиса в памяти, т.к. от этого зависит стоимость ресурсов

На тесте, где сервисы не делали запросы в базу - из всех четверых лучше всего отработал Go с приличным отрывом, цифры, к сожалению, уже не помню.

Но вся эта разница сошла на нет, как только добавился всего один простой SQL запрос в базу, в таблицу с 10 строками. И на этом фоне разница по скорости ответа была меньше 10%.

Иными словами если ваш сервис работает с базой - критической разницы по скорости работы между Go/Rust/PHP/Node/Java, увы, не будет.

Но другое дело если для нас важно сколько памяти "съедает" каждый сервис.

Например у вас пошли нагрузки и вам нужно горизонтально масштабирватся, т.е. запустить, скажем 100-10000 эксемпляров вашего сервиса.

Вот тут уже становится интереснее :)

Один экземпляр Go занимал в памяти порядка 6мб, при том, что Pytho+Django порядка 60мб.
Node уже не помню сколько, но что-то близкое к Python'у.
Вот тут уже, когда серверов у вас будет много - количество серверов с Go у вас будет в 10 раз меньше :)
Знаю случаи, когда с почти 40 серверов с API на Node перешли на 2 сервера с Go.

От части по этому и еще по ряду причин, последние несколько лет я использую Go и Python.
Лично я просто в мега восторге от Go :)
Еще Go идеально подходит для написания сетевых сервисов, CLI утилит и т.д.
Например Docker, Kubernetes и еще куча всего написаны на Go.
Я делал подобные вещи на разных языках, и ни на чём, как на Go не получался такой красивый и понятный код, который при этом работает достаточно хорошо.

Про PHP, если знаете его, можете писать на нём, если не знаете - учить не советую, как минимум потому, что есть Python, на нём код куда более читабельный получается, возможностей, вакансий с нормальной з\п больше.

На C# писать не довелось, сказать о нём ничего не могу.

Писал на Java несколько лет, но она мне очень не нравится :) Особенно, когда есть Go :)
Если будете учить Java - готовьтесь к тому, что вы будете обслуживать Legacy код, или скорее ...нокод :)
Но вакансий с хорошей з/п по Java тоже много. Как минимум без денег не останетесь точно.

Rust имеет смысл использовать, когда у вас очень большая нагрузка и для вас критична latency.
Например для показа рекламы нужно ответить за 100мс иначе вашу рекламу просто не покажут.
Вот тут Rust выиагает у Go за счёт того, что у Go будут периодические "провалы" во время сборки мусора.
В остальном, по моему мнению, Rust проиграет за счёт большего времени по разработке, худшей читаемости кода.

С другой стороны, если у вас есть рабочий сервис на Node, то вместо перехода на Rust, явно буде лучше сделать просто модуль на C/C++ для Node и всё будет летать + полный контроль выделения и освобождения памяти.

Я такую схему с модулями на C/С++ не раз использовал на Perl'е.
Очень помогало особенно там, где нужно было чётко освобождать память, чтобы скрипты со временем не пухли.

Надеюсь вам это как то поможет определиться :)

Худший ответ: В такой формулировке - никакие. Умеете и знаете ноду? Так и пишите на ней. Возникли проблемы? Решайте конкретные проблемы в рамках платформы. Появилась нерешаемая в рамках данной платформы проблема? Вот тут и настало время задумать, а стоит ли переходить.