Skip to content

Add AggregateSerializer, AggregateDeserializer #1237

Open
@rkoeninger

Description

@rkoeninger

Description

I had to write a class like the AggregateSerializer below recently. It seems like something that would naturally be in the library given producers can produce to multiple topics and considers can subscribe to multiple topics (each with its own format).

See #838
See #1009

How to implement

In /src/confluent_kafka/serialization/__init__.py, two classes could be added:

class AggregateSerializer(Serializer):
    def __init__(self, serializers: Dict[str, Serializer]):
        self.serializers = serializers
    def __call__(self, obj, ctx: SerializationContext):
        return self.serializers[ctx.topic](obj. ctx)

# And basically the same for AggregateDeserializer

And basically the same for AggregateDeserializer, plus doc comments per other classes in module.

I can do the legwork to integrate this if it increases the chances of it getting in.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementRequesting a feature changepriority:lowMaintainer triage tag for indicating low impact or criticality issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions