Versions Compared

Key

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

Table of Contents

Status

Current state"Under DiscussionAdopted"

Discussion thread: here

JIRA: here 

Adopted: 2.0.0

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

Code Block
languagejava
WorkerConfig.java
 
public static final String INTERNAL_KEY_CONVERTER_CLASS_CONFIG = "internal.key.converter";
public static final String INTERNAL_KEY_CONVERTER_CLASS_DOC =
        "Converter class used to convert between Kafka Connect format and the serialized form that is written to Kafka." +
                " This controls the format of the keys in messages written to or read from Kafka, and since this is" +
                " independent of connectors it allows any connector to work with any serialization format." +
                " Examples of common formats include JSON and Avro." +
                " This setting controls the format used for internal bookkeeping data used by the framework, such as" +
                " configs and offsets, so users can typically use any functioning Converter implementation.";

public static final String INTERNAL_VALUE_CONVERTER_CLASS_CONFIG = "internal.value.converter";
public static final String INTERNAL_VALUE_CONVERTER_CLASS_DOC =
        "Converter class used to convert between Kafka Connect format and the serialized form that is written to Kafka." +
                " This controls the format of the values in messages written to or read from Kafka, and since this is" +
                " independent of connectors it allows any connector to work with any serialization format." +
                " Examples of common formats include JSON and Avro." +
                " This setting controls the format used for internal bookkeeping data used by the framework, such as" +
                " configs and offsets, so users can typically use any functioning Converter implementation.";
 
connect-standalone.properties
 
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
 
connect-distributed.properties
 
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter

 

Proposed Changes

We should deprecate the above configs, give them a default of JsonConverter (which is also a kind of nice since it results in human-readable data in the internal topics), and then ultimately remove them in the next major versionwill log an warning if above configs are specified" and since the JsonConverter is the default, the configs will be removed immediately from the above example worker configuration files.

Compatibility, Deprecation, and Migration Plan

 This is a backward compatible change and the configs would be supported until next major release. However we need to verify whether users are using any other converters apart from default JsonConverter. KAFKA-3988 can help us in validating the same. If there are some users using other converters, we need to consider how would they migrate to newer versions which would no longer support them

Rejected Alternatives

None

...