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 state: Discarded Draft

Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]
JIRA: here [Change the link from KAFKA-1 to your own ticket]

JIRA

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

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

Motivation

Update: This KIP was discarded in favor of moving the code from the kafka  (aka core) module to other modules. Once that effort is completed, kafka  (aka core) will be empty and a separate KIP will propose its removal (along with proposed alternatives).

Since Scala 2 is not binary compatible across minor versions, a separate kafka  (aka core ) artifact is published for each supported Scala version (as is typical for Scala projects). More concretely, we currently publish kafka_2.12 and kafka_2.13 for Scala 2.12 and 2.13 respectively. This requires building the project and running all the tests once for each supported Scala version. In addition, it's not uncommon for contributors to have to fix pull requests so that they work on both Scala versions.

...

As part of KIP-751, we deprecated support for Scala 2.12 with the goal to remove it in Apache 4.0 – that is, a single Scala version would be supported at that point. I propose we take the chance to formalize that only a single Scala version will be supported at any point in time by the kafka  (aka core ) module from Apache Kafka 4.0 and the artifact name should be changed to be simply kafka  (i.e. the Scala version suffix would will be removed).

Public Interfaces

...

Users and projects that depend on kafka_2.13  would have to change their build to refer to kafka instead.

Projects written in Scala that are using a different version than the one kafka  supports would have to either use a separate classloader, shading or running kafka in a separate process via testcontainers (or similar).

...