gRPC если есть строгий формат данных, RabbitMQ/ActiveMQ если нужно персистентное хранение сообщений и максимальная надёжность доставки, ZeroMQ если нужна максимальная скорость, Kafka если нужно очень много данных (в основном статистика), HTTP для всего остального.
странное сравнение grpc vs mq, впервую очередь одно предрасположенно к синхронности, второе нет.
У меня в системе REST + WS + Grpc+ MQ (Kafka&Redis) разные задачи требуют разного транспорта, не думаю что реально выбрать сначала транспорт, а потом думать а чтобы навернуть сверху