Ребят, хочу поделиться опытом. У нас был проект, где нужно было строить высоконагруженный API для обработки большого количества запросов в реальном времени. Рассматривали два варианта: Node.js (с Express, конечно) и Go.
Node.js мы знали хорошо, уже был опыт. Он быстрый, с огромным комьюнити, кучей готовых библиотек. Казалось бы, идеальный вариант. Но были сомнения по поводу его производительности при одновременно большом количестве одновременных соединений. Ну и однопоточность, хоть и с асинхронностью, иногда настораживала.
Go показался нам более перспективным для таких задач. Строгая типизация, компиляция в нативный код, встроенная поддержка конкурентности (горутины). Звучит как мечта для высоконагруженных систем. Но! Порог вхождения выше, экосистема меньше, сообщество не такое большое, как у Node.js. Искать нужные решения было сложнее, иногда приходилось писать с нуля.
В итоге, после долгих раздумий и небольших тестов, мы все-таки выбрали Go. И не пожалели. Сервис получился реально быстрым, стабильным, с минимальным потреблением ресурсов. Но это потребовало больше времени на разработку и обучение команды. Если бы задача была чуть проще, или сроки жестче, возможно, выбрали бы Node.js. Так что, кмк, выбор сильно зависит от конкретных требований и ресурсов.
kraken ссылка