Skip to content

Kafka Compatibility

klite is a drop-in replacement for standard Kafka clients. Any franz-go, librdkafka, or Java client can connect, produce, consume, and use consumer groups without code changes beyond updating the broker address.

Any client built for Kafka 2.3 (2019) or newer will work. This includes franz-go, librdkafka, the Java Kafka client, KafkaJS, sarama, and their wrappers (confluent-kafka-go, confluent-kafka-python, Spring Kafka, etc.).

klite implements 39 Kafka API keys. The tables below show every supported API with its version range.

Core data path (5 APIs)
KeyAPIMinMaxNotes
0Produce311acks=0, acks=1, acks=all. LogAppendTime. Transactional produce.
1Fetch416Long-polling, size limits, KIP-74 fetch response ordering.
2ListOffsets18Earliest, latest, max-timestamp, timestamp-based lookup.
3Metadata412Auto-create topics, topic IDs (UUIDs).
18ApiVersions04Client handshake. Returns all supported APIs and version ranges.
Consumer groups (8 APIs)
KeyAPIMinMaxNotes
10FindCoordinator06Group and transaction coordinators. Batch key lookup.
11JoinGroup09Eager and cooperative rebalance. Static membership.
14SyncGroup05Distributes partition assignments from leader to members.
12Heartbeat04Session timeout enforcement.
13LeaveGroup05Graceful departure. Batch member leave.
8OffsetCommit09Per-group, per-partition offset tracking.
9OffsetFetch09Retrieve committed offsets. Batch group support in v8+.
47OffsetDelete00Delete committed offsets.
Transactions and idempotency (8 APIs)
KeyAPIMinMaxNotes
22InitProducerID05Producer ID and epoch assignment. Transactional and idempotent.
24AddPartitionsToTxn04Register partitions in a transaction.
25AddOffsetsToTxn03Register group offsets in a transaction.
26EndTxn04Commit or abort. Writes control batches.
28TxnOffsetCommit04Commit offsets within a transaction (exactly-once).
61DescribeProducers00Inspect active producer state.
65DescribeTransactions00Inspect active transactions.
66ListTransactions01List all active transaction IDs.
Admin (13 APIs)
KeyAPIMinMaxNotes
19CreateTopics27Name validation, partition count, topic configs.
20DeleteTopics06By name or topic ID.
37CreatePartitions03Increase partition count for existing topics.
32DescribeConfigs04Topic and broker configs.
33AlterConfigs02Legacy full-replacement config update.
44IncrementalAlterConfigs01Incremental changes (SET, DELETE, APPEND, SUBTRACT).
16ListGroups05List consumer groups with state filter.
15DescribeGroups06Group metadata, members, assignments.
42DeleteGroups02Delete inactive consumer groups.
21DeleteRecords02Advance log start offset.
60DescribeCluster02Cluster ID, controller, broker list.
35DescribeLogDirs04Log directory sizes.
23OffsetForLeaderEpoch34End offset for a given leader epoch.
Authentication (4 APIs)
KeyAPIMinMaxNotes
17SASLHandshake11Mechanism negotiation.
36SASLAuthenticate02PLAIN, SCRAM-SHA-256, SCRAM-SHA-512.
51AlterUserScramCredentials00Create, update, or delete SCRAM users.
50DescribeUserScramCredentials00List SCRAM users and mechanisms.
  • Quotas are stored but not enforced. You can set client quotas through the API and they’ll be persisted, but klite won’t actually throttle clients based on them.
  • No legacy protocol versions. Clients older than Kafka 2.3 (mid-2019) may not work.
  • Single broker. No replication, no partition reassignment, no inter-broker APIs. Durability comes from S3 instead.