Jeff Klukas created KAFKA-4932:
----------------------------------

             Summary: Add UUID Serdes
                 Key: KAFKA-4932
                 URL: https://issues.apache.org/jira/browse/KAFKA-4932
             Project: Kafka
          Issue Type: Improvement
          Components: clients, streams
            Reporter: Jeff Klukas
            Priority: Minor


I propose adding serializers and deserializers for the java.util.UUID class.

I have many use cases where I want to set the key of a Kafka message to be a 
UUID. Currently, I need turn UUIDs into strings or byte arrays and use the 
associated Serdes, but it would be more convenient to serialize and deserialize 
UUIDs directly.

I'd propose that the serializer and deserializer use the 36-byte string 
representation, calling UUID.toString and UUID.fromString

Optionally, we could also has the deserializer support a 16-byte representation 
and it would check size of the input byte array to determine whether it's a 
binary or string representation of the UUID. It's not well defined whether the 
most significant bits or least significant go first, so this deserializer would 
have to support only one or the other.

Optionally, there could be two variants of the serializer, a 
UUIDStringSerializer and a UUIDBytesSerializer.

We would also wrap these in a Serde and modify the Serdes class to include this 
in the list of supported types.

I would be willing to write this PR, but am looking for feedback about whether 
there are significant concerns here around ambiguity of what the byte 
representation of a UUID should be, or if there's desire to keep to list of 
built-in Serdes minimal such that a PR would be unlikely to be accepted.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to