conduktor.io ↗

compression.type — Kafka Broker Configuration

Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd').

Description

Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.

Default Values by Kafka Version

Kafka VersionDefault Value
0.9.0producer
0.10.0producer
0.10.1producer
0.10.2producer
0.11.0producer
1.0producer
1.1producer
2.0producer
2.1producer
2.2producer
2.3producer
2.4producer
2.5producer
2.6producer
2.7producer
2.8producer
3.0producer
3.1producer
3.2producer
3.3producer
3.4producer
3.5producer
3.6producer
3.7producer
3.8producer
3.9producer
4.0producer
4.1producer
4.2producer

Tuning Recommendation

ProfileRecommendedWhy
producer / throughputlz4LZ4 compresses text/JSON payloads by 3-5x at near-memory-bandwidth speed (~500MB/s on modern CPUs), dramatically reducing network bytes and broker write amplification with minimal CPU overhead.
producer / latencynoneNo compression is the right choice for latency: even LZ4 at level 1 adds 0.1-0.5ms of CPU time per batch and requires a full batch to be assembled before compression runs, which conflicts with the linger.ms=0 strategy.
broker / throughputproducerKeep broker compression passthrough ('producer'). Re-compressing at the broker wastes CPU doing decompression + recompression for format validation; the producer already sends compressed batches. Changing to a different codec forces broker-side decompression of every batch.

Related Configs

batch.size · max.request.size · compression.lz4.level · linger.ms · message.max.bytes · num.io.threads

Manage Kafka configs across all your clusters with Conduktor Console — view, compare, and update configurations in one place.