Извините, это лишь частичный ответ.
Недавно я начал использовать Any в проекте и могу рассказать о некоторых перспективах. У меня есть аналогичное (хотя и более простое) требование к тому, что вы изложили. Содержимое сообщения заключено в оболочку, но в моем случае от клиентов требуется отправить дескриптор на сервер и указать специальный c метод, чтобы помочь ему (un) marshal et c.
Я использовал Новый Golang APIv2 Google, знакомый только по Golang и Rust (но не Python). Документация отсутствует, но, надеюсь, вам помогут документы Golang:
Мне тоже было сложно понять концепцию (реализацию) глобального реестра, поэтому я взломал вышеуказанное решение. Метаданные входящего сообщения предоставляют серверу достаточный контекст, чтобы он мог сконструировать тип сообщения и упорядочить в него байты.