я бы не сказал что прямо очень медленный. Скорее всего проблема в сериализаторе JSON и, конечно, больешм объеме трафика.
На сейчас для публичного стэка я бы снова взял REST, для внутреннего бинарный gRPС
в основе gRPC лежит бинарный google protocol buffers, там размеры сообщений могут быть десятки байт. При этом есть формальная схема и автогенерируемый клиент.