Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Current state:  Under Discussionaccepted

Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread] 

Voting thread: here

JIRA:

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyKAFKA-9559

...

3.0 gives us the opportunity to make backward-incompatible changes. With that, now is a good time to change the default serde from `byte array` to `null`. This change will allow users to better catch serialization issues from the beginning, as it's likely that they need to be setting a default serde themselves or passing in a serde rather than relying on the byte array default. 

Public Interfaces

Within `StreamsConfig.java`, DEFAULT_KEY_SERDE_CLASS_CONFIG will default to null and DEFAULT_VALUE_SERDE_CLASS_CONFIG will default to null. That means that the following existing methods will return `null` if no default is set, whereas before they returned byte array key/value serde.

Code Block
languagejava
titleStreamsConfig
// Will return null if no default is set through configs
public Serde defaultKeySerde() {
}

// Will return null if no default is set through configs
 public Serde defaultValueSerde() {
}

...

Where the default key and value serde used to be a byte array, it will now be null. Instead of throwing Null Pointer Exceptions, we'll throw a Streams Config Exception to remind the user that they need to set a serde through the default configs or pass one in.

...