It's necessary that confluent-kafka-python provides support for this. It has it for java. Right now the DESCRIPTOR is needed https://github.com/confluentinc/confluent-kafka-python/blob/master/src/confluent_kafka/schema_registry/protobuf.py#L482. 1. Extract the MessageIndexes https://github.com/confluentinc/schema-registry/blob/master/protobuf-serializer/src/main/java/io/confluent/kafka/serializers/protobuf/AbstractKafkaProtobufDeserializer.java#L139 2. Get the message name from the schema https://github.com/confluentinc/schema-registry/blob/master/protobuf-serializer/src/main/java/io/confluent/kafka/serializers/protobuf/AbstractKafkaProtobufDeserializer.java#L140 3. Make the FileDescriptorSet from the proto file got from schema registry **(this is the blocker right now)** 4. Get the class using the message name 5. Instantiate the class Another alternative if using buf: https://buf.build/docs/bsr/reflection/overview https://googleapis.dev/python/protobuf/latest/google/protobuf/message_factory.html
It's necessary that confluent-kafka-python provides support for this. It has it for java.
Right now the DESCRIPTOR is needed https://github.com/confluentinc/confluent-kafka-python/blob/master/src/confluent_kafka/schema_registry/protobuf.py#L482.
Another alternative if using buf:
https://buf.build/docs/bsr/reflection/overview
https://googleapis.dev/python/protobuf/latest/google/protobuf/message_factory.html