Supported KIPs

Kafka Improvement Proposals (KIPs) describe the protocol and feature changes that ship in each Apache Kafka release. This page tracks how kafka-python covers the client-facing KIPs. The KIP set and the Kafka-release column follow the excellent list maintained by the franz-go project.

Because the wire protocol is generated from the upstream Kafka JSON schemas (kafka/protocol/schemas/resources/), the protocol classes track many KIPs automatically. The Status column reflects client-facing behavior in kafka-python – whether the feature is actually usable through KafkaProducer, KafkaConsumer, or KafkaAdminClient – not merely whether the wire format exists. Note that kafka-python is a client library: broker- and controller-internal protocols (KRaft, inter-broker replication, etc.) are intentionally out of scope.

This table layout was borrowed from franz-go because we liked it so much! It was originally constructed here by Claude, but it is maintained with a caring human touch.

Status legend

  • Supported – usable through the kafka-python client or admin API.

  • Partial – partially implemented; the status links to the notes below.

  • Protocol only – wire/protocol classes exist under kafka/protocol/ but the client does not yet drive or expose the feature.

  • -- – not implemented / not supported.

KIPs

KIP

Title

Kafka release

Status

kafka-python release

KIP-1

Disallow acks > 1

0.8.3

Supported

1.0.0

KIP-8

Flush method on Producer

0.8.3

Supported

1.0.0

KIP-4

Basic Admin APIs

0.9.0

Supported

1.0.0

KIP-12

SASL & SSL

0.9.0

Supported

1.1.0

KIP-13

Throttling (on broker)

0.9.0

Supported

2.1.0

KIP-15

Producer close with a timeout

0.9.0

Supported

1.0.0

KIP-19

Request timeouts

0.9.0

Supported

1.0.0

KIP-22

Custom partitioners

0.9.0

Supported

1.0.0

KIP-40

ListGroups and DescribeGroups

0.9.0

Supported

1.4.4

KIP-31

Relative offsets in message sets

0.10.0

Supported

1.2.0

KIP-32

Timestamps in message set v1

0.10.0

Supported

1.2.0

KIP-35

ApiVersion

0.10.0

Supported

1.3.0

KIP-41

max.poll.records

0.10.0

Supported

1.0.0

KIP-42

Producer & consumer interceptors

0.10.0

KIP-43

SASL PLAIN & handshake

0.10.0

Supported

1.3.0

KIP-57

Interoperable lz4 framing

0.10.0

Supported

1.2.0

KIP-62

background heartbeats & improvements

0.10.1

Supported

1.4.0

KIP-70

On{Assigned,Revoked}

0.10.1

Supported

2.1.3

KIP-74

Fetch response size limits

0.10.1

Supported

2.1.3

KIP-78

ClusterID in Metadata

0.10.1

Supported

1.3.3

KIP-79

List offsets for times

0.10.1

Supported

1.3.4

KIP-81

Bound fetch memory usage

0.10.1

Partial

1.0.0

KIP-84

SASL SCRAM

0.10.2

Supported

2.0.0

KIP-86

SASL Callbacks

0.10.2

Partial

1.4.6

KIP-88

OffsetFetch for admins

0.10.2

Supported

1.3.3

KIP-97

Backwards compat for old brokers

0.10.2

Supported

1.0.0

KIP-102

Consumer close timeouts

0.10.2

Supported

1.0.0

KIP-108

CreateTopic validate only field

0.10.2

Supported

2.0.0

KIP-54

Sticky partitioning

0.11.0

Supported

2.0.2

KIP-82

Record headers

0.11.0

Supported

1.4.0

KIP-98

EOS

0.11.0

Supported

2.2.0

KIP-101

OffsetForLeaderEpoch v0

0.11.0

Supported

1.4.0

KIP-107

DeleteRecords

0.11.0

Supported

2.1.0

KIP-117

Admin client

0.11.0

Supported

1.4.4

KIP-124

Request rate quotas

0.11.0

Supported

2.1.0

KIP-126

Ensure proper batch size after compression

0.11.0

Supported

1.0.0

KIP-133

Describe & Alter configs

0.11.0

Supported

2.0.0

KIP-140

ACLs

0.11.0

Supported

1.4.7

KIP-144

Broker reconnect backoff

0.11.0

Supported

1.3.4

KIP-112

Broker request protocol changes

1.0

Supported

1.4.4

KIP-113

LogDir requests

1.0

Supported

1.4.4

KIP-152

More SASL; SASLAuthenticate

1.0

Supported

2.1.0

KIP-185

Idempotency is default

1.0

Supported

2.2.0

KIP-192

Cleaner idempotence semantics

1.0

Supported

2.2.0

KIP-195

CreatePartitions

1.0

Supported

1.4.4

KIP-48

Delegation tokens

1.1

KIP-204

DeleteRecords via admin API

1.1

Supported

2.1.0

KIP-226

Describe configs v1

1.1

Supported

2.0.0

KIP-227

Incremental fetch

1.1

Supported

2.1.0

KIP-229

DeleteGroups

1.1

Supported

2.0.2

KIP-219

Client-side throttling

2.0

Supported

2.1.0

KIP-222

Group operations via admin API

2.0

Supported

1.4.4

KIP-249

Delegation tokens in admin API

2.0

KIP-255

SASL OAUTHBEARER

2.0

Supported

1.4.6

KIP-266

Fix indefinite consumer timeouts

2.0

Partial

1.0.0

KIP-279

OffsetForLeaderEpoch bump

2.0

Supported

3.0.0

KIP-294

TLS verification

2.0

Supported

1.4.6

KIP-91

Intuitive producer timeouts

2.1

Supported

2.2.0

KIP-110

zstd

2.1

Supported

2.0.2

KIP-302

Use multiple addrs for resolved hostnames

2.1

Supported

2.0.0

KIP-320

Fetcher: detect log truncation

2.1

Supported

3.0.0

KIP-322

DeleteTopics disabled error code

2.1

Supported

2.1.0

KIP-342

OAUTHBEARER extensions

2.1

Supported

1.4.6

KIP-357

List ACLs per principal via admin API

2.1

Supported

1.4.7

KIP-390

Configurable compression level

2.1

KIP-183

Elect preferred leaders

2.2

Supported

2.1.0

KIP-207

New error in ListOffsets

2.2

Supported

2.3.0

KIP-289

Default group.id to null

2.2

Supported

2.2.0

KIP-368

Periodically reauthenticate SASL

2.2

Supported

3.0.0

KIP-389

Group max size error

2.2

Supported

2.1.0

KIP-394

Require member.id for initial join request

2.2

Supported

2.2.0

KIP-339

IncrementalAlterConfigs

2.3

Supported

3.0.0

KIP-341

Sticky group bugfix

2.3

Supported

2.0.3

KIP-361

Allow disable auto topic creation

2.3

Supported

2.1.0

KIP-430

Authorized ops in DescribeGroups

2.3

Supported

2.3.0

KIP-345

Static group membership

2.4

Supported

2.3.0

KIP-369

An always round robin produce partitioner

2.4

KIP-392

Closest replica fetching w/ rack

2.4

Supported

3.0.0

KIP-396

Commit offsets manually

2.4

Supported

2.0.0

KIP-412

Dynamic log levels w/ IncrementalAlterConfigs

2.4

Supported

3.0.0

KIP-429

Consumer incremental rebalance

2.4

Supported

3.0.0

KIP-455

Replica reassignment API

2.4

Supported

3.0.0

KIP-460

Leader election API

2.4

Supported

2.1.0

KIP-464

CreateTopic defaults

2.4

Supported

2.0.0

KIP-467

Per-record error codes when producing

2.4

Supported

2.3.0

KIP-480

Sticky partition producing

2.4

Supported

3.0.0

KIP-482

Tagged fields (KAFKA-8885)

2.4

Supported

3.0.0

KIP-496

OffsetDelete admin command

2.4

Supported

3.0.0

KIP-511

Client name/version in ApiVersions request

2.4

Supported

2.1.3

KIP-514

Bounded Flush

2.4

Supported

1.0.0

KIP-525

CreateTopics v5 returns configs

2.4

Supported

2.0.0

KIP-360

Safe epoch bumping for UNKNOWN_PRODUCER_ID

2.5

Supported

3.0.0

KIP-447

Producer scalability for EOS

2.5

Supported

3.0.0

KIP-526

Reduce metadata lookups

2.5

Supported

2.0.0

KIP-533

Default API timeout (total time, not per request)

2.5

Partial

1.0.0

KIP-546

Client Quota APIs

2.5

Protocol only

KIP-559

Protocol info in sync/join

2.5

Supported

3.0.0

KIP-518

List groups by state

2.6

Supported

3.0.0

KIP-519

Configurable SSL “engine”

2.6

Supported

2.0.0

KIP-568

Explicit rebalance triggering on the consumer

2.6

KIP-569

Docs & type in DescribeConfigs

2.6

Supported

3.0.0

KIP-580

Exponential backoff

2.6

Supported

3.0.0

KIP-584

Versioning scheme for features

2.6

Supported

3.0.0

KIP-602

Use all resolved addrs by default

2.6

Supported

2.0.0

KIP-554

Broker side SCRAM APIs

2.7

Supported

3.0.0

KIP-588

Producer recovery from txn timeout

2.7

Supported

3.0.0

KIP-595

New APIs for raft protocol

2.7

Supported

3.0.0

KIP-599

Throttling on create/delete topic/partition

2.7

Supported

2.1.0

KIP-601

Configurable socket connection timeout

2.7

Supported

3.0.0

KIP-651

Support PEM

2.7

Supported

2.0.0

KIP-654

Aborted txns with unflushed data is not fatal

2.7

Supported

2.3.0

KIP-516

Topic IDs

2.8

Supported

3.0.0

KIP-700

DescribeCluster

2.8

Supported

3.0.0

KIP-664

Admin API for DescribeProducers

3.0

Supported

3.0.0

KIP-679

Strongest producer guarantee by default

3.0

Supported

3.0.0

KIP-699

Batch FindCoordinators

3.0

Supported

3.0.0

KIP-709

Batch OffsetFetch

3.0

Supported

3.0.0

KIP-734

Support MaxTimestamp in ListOffsets

3.0

Supported

3.0.0

KIP-735

Bump default session timeout

3.0

Supported

3.0.0

KIP-768

Extend SASL/OAUTHBEARER support for OIDC

3.1

Partial

1.4.6

KIP-784

Add ErrorCode to DescribeLogDirs response

3.1

Supported

3.0.0

KIP-800

Reason in Join/Leave group

3.1

Supported

3.0.0

KIP-814

SkipAssignment for static group leaders

3.1

Partial

3.0.0

KIP-373

Users can create delegation tokens for others

3.3

KIP-794

Better sticky partitioning

3.3

Partial

3.0.0

KIP-827

DescribeLogDirs.{Total,Usable}Bytes

3.3

Supported

3.0.0

KIP-836

DescribeQuorum voter lag info

3.3

Supported

3.0.0

KIP-851

RequireStable on OffsetFetch

3.3

Partial

3.0.0

KIP-792

Generation field in consumer group protocol

3.4

Supported

3.0.0

KIP-405

Kafka Tiered Storage

3.5

Supported

3.0.0

KIP-881

Rack-aware consumer partition assignment

3.5

KIP-893

Nullable structs in the protocol

3.5

Supported

3.0.0

KIP-903

Stale broker epoch fencing

3.5

Protocol only

KIP-714

Client Metrics

3.7

KIP-848

Next gen consumer rebalance protocol

3.7

KIP-919

Admin client to KRaft, Controller registration

3.7

KIP-951

Leader discovery optimizations

3.7

Protocol only

KIP-966

Eligible leader replicas (protocol)

3.7

Supported

3.0.0

KIP-1000

ListClientMetricsResources

3.7

KIP-890

Transactions server side defense

3.8, 4.0

Partial

KIP-899

Allow clients to rebootstrap

3.8

KIP-994

List/Describe transactions enhancements

3.8

KIP-853

Add replica directory ID for replica fetchers

3.9

Supported

3.0.0

KIP-1005

ListOffsets w. Timestamp -5

3.9

Supported

3.0.0

KIP-1025

URL-encode clientID/secret in OAuth auth header

3.9

Partial

1.4.6

KIP-1022

Formatting changes for features

4.0

Supported

3.0.0

KIP-1043

Administration of groups

4.0

Supported

3.0.0

KIP-1073

DescribeCluster.IsFenced

4.0

Protocol only

KIP-1075

TimeoutMillis on ListOffsets

4.0

Protocol only

KIP-1076

User provided client metrics

4.0

KIP-1082

ClientID in the next-gen rebalancer

4.0

KIP-1102

RebootstrapRequired

4.0

KIP-1139

Oauth JWT bearer grant

4.0

Partial

1.4.6

KIP-860

Client side AlterPartitionAssignments RF change guard

4.1

Supported

3.0.0

KIP-932

Share groups (queues)

4.1

KIP-1142

ListConfigResources

4.1

Supported

3.0.0

KIP-1152

ListTransactions.TransactionalIDPattern

4.1

KIP-1023

ListOffsets earliest pending upload offset

4.2

KIP-1071

Streams group protocol

4.2

KIP-1160

Per-broker supported features in ApiVersions

4.2

Protocol only

KIP-1206

ShareFetch strict record limit

4.2

KIP-1222

Share consumer renew acknowledgements

4.2

KIP-1226

Share partition lag in DescribeShareGroupOffsets

4.2

KIP-1227

Rack ID in (Share)MemberDescription

4.2

KIP-1258

OAuth client assertion in client_credentials grant

4.3

Partial

1.4.6

KIP-498

Max bound on reads

WIP

Supported

3.0.0

Notes

  • Partial entries – KIP-81 (fetch memory is bounded by fetch_max_bytes / max_partition_fetch_bytes rather than a global buffer); KIP-86 and KIP-768 / KIP-1025 / KIP-1139 / KIP-1258 (SASL/OAUTHBEARER is driven by a user-supplied AbstractTokenProvider, so OIDC, JWT-bearer, and client assertion grants are the application’s responsibility); KIP-266 / KIP-533 (per-call timeouts exist, but there is no default.api.timeout.ms); KIP-794 / KIP-814 (the sticky producer partitioner and cooperative-sticky assignor are implemented, but not these specific refinements); KIP-890 (transaction RPCs are capped at AddPartitionsToTxn/EndTxn/TxnOffsetCommit v3 and Produce v9, below the KIP-890 versions).

  • Not supported (shown as -- in the table) – notable client-facing gaps include KIP-42 (interceptors), KIP-48 / KIP-249 / KIP-373 (delegation tokens), KIP-369 (round-robin partitioner), KIP-568 (explicit rebalance trigger), KIP-714 / KIP-1000 / KIP-1076 (client telemetry), KIP-848 / KIP-1082 (next-generation consumer group protocol), KIP-881 (rack-aware assignment), KIP-899 / KIP-1102 (client re-bootstrap), and KIP-932 / KIP-1071 / KIP-1206 / KIP-1222 (share and streams groups).