protobuf based rpc