# Compatibility

- Broker target: Apache Kafka 4.0+.
- Cluster mode target: KRaft brokers.
- Producer target: modern produce, metadata, offset, and transaction APIs.
- Consumer target: modern consumer groups.
- Share consumer target: Kafka share groups.
- Transaction target: transaction protocol v2.

## Supported

- Kafka 4.0+ brokers.
- KRaft clusters.
- Plain producing.
- Idempotent producing where broker configuration allows it.
- Transactional producing through transaction protocol v2.
- Modern consumer groups.
- Share groups.
- Admin APIs used by kafkit-client.
- TLS.
- SASL/PLAIN.
- SASL/SCRAM-SHA-256.
- SASL/SCRAM-SHA-512.

## Not Supported

- Kafka brokers before 4.0.
- ZooKeeper-era compatibility claims.
- Classic consumer group membership.
- Classic `JoinGroup` / `SyncGroup` / classic heartbeat protocol flows.
- Older transaction protocol fallback paths.
- OAuthBearer.
- GSSAPI/Kerberos.
- AWS/MSK IAM.

## Transaction Protocol v2

- Means transactions are implemented for the modern Kafka transaction coordinator protocol.
- Means Kafka 4.0+ is the compatibility baseline for transactional producers.
- Means older transactional broker behavior is intentionally outside the support window.
- Does not affect plain non-transactional producing.
- Does require `transactional_id` for transactional producers.

## Consumer And Share Groups

- Modern consumer groups are supported for normal partition-based consumption.
- Share groups are supported for record-sharing workflows.
- Classic groups are not supported.
- Classic-group-only deployments should be upgraded before using kafkit-client consumers.
