Bird
Raised Fist0
Kafkadevops~20 mins

Compression (gzip, snappy, lz4) in Kafka - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Kafka Compression Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Kafka producer compression setting?
Consider a Kafka producer configured with the following properties:

props.put("compression.type", "gzip");
props.put("batch.size", 16384);
props.put("linger.ms", 5);

What compression type will Kafka use to compress the messages before sending?
Agzip compression
Bsnappy compression
Clz4 compression
Dno compression
Attempts:
2 left
💡 Hint
Check the value assigned to the 'compression.type' property.
❓ Predict Output
intermediate
2:00remaining
What error occurs with unsupported compression codec in Kafka?
Given this Kafka producer configuration:

props.put("compression.type", "brotli");

What happens when the producer tries to send messages?
AMessages are sent without compression
BProducer silently ignores the compression setting
CMessages are compressed using gzip as fallback
DKafka throws an IllegalArgumentException at runtime
Attempts:
2 left
💡 Hint
Check Kafka's supported compression codecs.
🚀 Application
advanced
2:00remaining
How to configure Kafka consumer to decompress messages compressed with snappy?
You have a Kafka topic where messages are compressed using snappy by the producer.

Which consumer configuration ensures messages are decompressed correctly?
ASet 'compression.type' to 'snappy' in consumer properties
BNo special configuration needed; Kafka consumer auto-detects compression
CSet 'fetch.min.bytes' to a higher value
DSet 'enable.auto.commit' to false
Attempts:
2 left
💡 Hint
Think about how Kafka consumers handle compression.
🧠 Conceptual
advanced
2:00remaining
Why might you choose lz4 compression over gzip in Kafka?
Select the main reason to prefer lz4 compression instead of gzip for Kafka message compression.
Alz4 is the only compression supported by Kafka brokers
Blz4 produces the smallest compressed files compared to gzip
Clz4 offers faster compression and decompression speeds with moderate compression ratio
Dlz4 compression is more CPU intensive than gzip
Attempts:
2 left
💡 Hint
Consider speed vs compression ratio trade-offs.
🔧 Debug
expert
3:00remaining
What is the cause of this Kafka producer runtime error with gzip compression?
A Kafka producer configured with:

props.put("compression.type", "gzip");
props.put("batch.size", 0);

When sending messages, it throws:

java.lang.IllegalArgumentException: batch.size must be > 0

What is the root cause?
Abatch.size cannot be zero; it must be a positive integer
Bgzip compression requires batch.size to be at least 16384
Ccompression.type 'gzip' is incompatible with batch.size setting
Dlinger.ms must be set when using gzip compression
Attempts:
2 left
💡 Hint
Check the error message carefully.

Practice

(1/5)
1. Which of the following compression types is NOT supported by Kafka by default?
easy
A. gzip
B. snappy
C. lz4
D. bzip2

Solution

  1. Step 1: Recall Kafka's default compression types

    Kafka supports gzip, snappy, and lz4 compression types by default.
  2. Step 2: Identify unsupported compression

    bzip2 is not included in Kafka's default compression options.
  3. Final Answer:

    bzip2 -> Option D
  4. Quick Check:

    Kafka default compression excludes bzip2 [OK]
Hint: Remember Kafka supports gzip, snappy, and lz4 only [OK]
Common Mistakes:
  • Confusing bzip2 as supported compression
  • Thinking all common compressions are supported
  • Mixing compression codecs with serialization formats
2. Which is the correct way to set gzip compression in Kafka producer configuration?
easy
A. compression.type = 'gzip'
B. compressionType = 'gzip'
C. compression.type = gzip
D. compression = 'gzip'

Solution

  1. Step 1: Identify the correct property name

    The Kafka producer config uses 'compression.type' to set compression.
  2. Step 2: Check the correct value format

    The value should be a string, so 'gzip' must be in quotes.
  3. Final Answer:

    compression.type = 'gzip' -> Option A
  4. Quick Check:

    Use compression.type with string value [OK]
Hint: Use compression.type with quotes around value [OK]
Common Mistakes:
  • Using wrong property name like compressionType
  • Omitting quotes around 'gzip'
  • Using compression instead of compression.type
3. Given this Kafka producer config snippet:
props.put("compression.type", "snappy");
props.put("acks", "all");

What is the effect of setting compression.type to snappy?
medium
A. Messages will be sent without compression.
B. Messages will be compressed using Snappy before sending.
C. Messages will be compressed using gzip.
D. Producer will throw an error due to invalid compression.

Solution

  1. Step 1: Understand the compression.type setting

    Setting compression.type to 'snappy' means messages are compressed with Snappy codec.
  2. Step 2: Confirm no errors expected

    Snappy is a valid compression type, so no errors occur and compression is applied.
  3. Final Answer:

    Messages will be compressed using Snappy before sending. -> Option B
  4. Quick Check:

    compression.type = snappy means Snappy compression [OK]
Hint: compression.type sets the codec used for message compression [OK]
Common Mistakes:
  • Assuming no compression happens
  • Confusing snappy with gzip
  • Expecting an error for valid compression type
4. You wrote this Kafka producer config:
props.put("compression.type", "lz5");

What is the problem with this configuration?
medium
A. lz5 is not a supported compression type in Kafka.
B. The property name should be compressionType, not compression.type.
C. The value should be uppercase: LZ5.
D. There is no problem; this is valid.

Solution

  1. Step 1: Check the compression type value

    Kafka supports gzip, snappy, and lz4 only; lz5 is invalid.
  2. Step 2: Confirm property name correctness

    The property name compression.type is correct, so no issue there.
  3. Final Answer:

    lz5 is not a supported compression type in Kafka. -> Option A
  4. Quick Check:

    Only gzip, snappy, lz4 are valid compression types [OK]
Hint: Use only gzip, snappy, or lz4 for compression.type [OK]
Common Mistakes:
  • Using unsupported compression types like lz5
  • Changing property name incorrectly
  • Assuming case sensitivity matters for compression type
5. You want to optimize Kafka message throughput by choosing a compression type that balances speed and compression ratio. Which compression type should you choose?
hard
A. gzip, because it has the best compression ratio but slower speed.
B. No compression, to avoid any overhead.
C. snappy, because it offers fast compression with reasonable compression ratio.
D. lz4, because it is the slowest but compresses best.

Solution

  1. Step 1: Understand compression trade-offs

    gzip compresses well but is slower; snappy is faster with decent compression; lz4 is fast and efficient.
  2. Step 2: Identify best balance for throughput

    snappy is known for fast compression speed and reasonable compression ratio, ideal for throughput.
  3. Final Answer:

    snappy, because it offers fast compression with reasonable compression ratio. -> Option C
  4. Quick Check:

    snappy balances speed and compression well [OK]
Hint: Pick snappy for speed and decent compression [OK]
Common Mistakes:
  • Choosing gzip for speed instead of compression ratio
  • Thinking lz4 is slowest
  • Assuming no compression is fastest overall
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard