Если на самом деле это будет простое приложение (и не под очень высокой нагрузкой), тогда ответом будет использование любого языка, который вы уже знаете, который имеет достойную многопоточность. Erlang, Scala, Clojure, Haskell, F # и т. Д., Все отлично справляются с такими вещами, как и Java, и C #. Все будет хорошо, если вы выберете то, что вам известно и / или нравится.
Если вы используете это в качестве предлога для изучения нового, вообще полезного языка, я бы выбрал Scala как отличную смесь с высокой производительностью (которой Эрланг не является в целом, хотя это фантастически с эффективным параллелизмом) функциональные (которые не являются Java и C #), легко развертываемые (благодаря работе на JVM) и достаточно знакомые (если вы знаете языки C-ish).
Если вы используете это в качестве предлога для практики отказоустойчивого параллелизма, используйте Erlang. Это то, для чего он был разработан, и он делает это очень хорошо.