Вы можете сериализовать сообщение в байты и использовать кодировку base64 для преобразования сериализованного значения в строку. Таким образом, даже если поля изменятся, вы сможете десериализовать строку, если изменение схемы происходит в пределах ограничений, определенных в https://developers.google.com/protocol-buffers/docs/proto3#updating.
Не используйте текст кодирование, кроме как для целей отладки. Это не обеспечивает ту же гарантию обратной совместимости, которую обеспечивает двоичный формат (например, изменение имени поля нарушит существующие сериализованные данные).
Для сериализации в строку:
BaseEncoding.base64().encode(order.toByteArray())
и десериализации:
Order.parseFrom(BaseEncoding.base64().decode(orderStr))