Versions Compared

Key

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

Table of Contents

This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.

Status

Current stateUnder Discussion

...

3.0 gives us the opportunity to make backwards 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

DEFAULT_KEY_SERDE_CLASS_CONFIG will default to null and DEFAULT_VALUE_SERDE_CLASS_CONFIG will default to null.


Code Block
languagejava
// 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() {
}


Proposed Changes

Describe the new thing you want to do in appropriate detail. This may be fairly extensive and have large subsections of its own. Or it may be a few sentences. Use judgement based on the scope of the changeWhere 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 Exception to remind the user that they need to set a serde through the default configs or pass one in.

Compatibility, Deprecation, and Migration Plan

  • What impact (if any) will there be on existing users?
  • If we are changing behavior how will we phase out the older behavior?
  • If we need special migration tools, describe them here.
  • When will we remove the existing behavior?

Rejected Alternatives

...

  • Users who currently rely on the default serdes being a byte array will need to update their applications to manually set the default serdes to byte array before upgrading to 3.0

Rejected Alternatives