Bird
Raised Fist0
Kafkadevops~20 mins

Retention policies (time-based, size-based) in Kafka - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Kafka Retention Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
What is the effect of this retention.ms setting?
Given a Kafka topic configured with retention.ms=60000, what happens to messages older than 60 seconds?
Kafka
kafka-topics.sh --alter --topic example-topic --config retention.ms=60000 --bootstrap-server localhost:9092
AMessages older than 60 seconds are moved to a backup topic.
BMessages are retained indefinitely regardless of age.
CMessages older than 60 seconds are compressed but not deleted.
DMessages older than 60 seconds are deleted automatically.
Attempts:
2 left
💡 Hint
Think about what retention.ms controls in Kafka.
❓ Predict Output
intermediate
1:30remaining
What happens with this retention.bytes setting?
A Kafka topic has retention.bytes=1048576 (1 MB). What happens when the topic size exceeds 1 MB?
Kafka
kafka-topics.sh --alter --topic example-topic --config retention.bytes=1048576 --bootstrap-server localhost:9092
AOldest messages are deleted to keep the topic size under 1 MB.
BNew messages are rejected once the topic size exceeds 1 MB.
CThe topic size grows indefinitely ignoring retention.bytes.
DMessages are archived to disk when size exceeds 1 MB.
Attempts:
2 left
💡 Hint
Consider what retention.bytes limits in Kafka.
🧠 Conceptual
advanced
2:00remaining
Which retention policy combination causes messages to be deleted earliest?
If a Kafka topic has retention.ms=3600000 (1 hour) and retention.bytes=10485760 (10 MB), when are messages deleted?
AMessages are deleted when either 1 hour passes or topic size exceeds 10 MB, whichever comes first.
BMessages are never deleted automatically with both settings set.
CMessages are deleted only when topic size exceeds 10 MB regardless of time.
DMessages are deleted only after 1 hour regardless of size.
Attempts:
2 left
💡 Hint
Think about how Kafka applies retention.ms and retention.bytes together.
❓ Predict Output
advanced
1:30remaining
What error occurs with this retention.ms value?
What happens if you set retention.ms=-1000 for a Kafka topic?
Kafka
kafka-topics.sh --alter --topic example-topic --config retention.ms=-1000 --bootstrap-server localhost:9092
AKafka deletes all messages immediately upon setting retention.ms negative.
BKafka throws a ConfigException due to invalid negative retention.ms value.
CKafka treats negative retention.ms as infinite retention (never delete).
DKafka ignores the retention.ms setting and uses default retention.
Attempts:
2 left
💡 Hint
Consider valid ranges for retention.ms in Kafka.
🧠 Conceptual
expert
2:30remaining
How does Kafka handle retention with log compaction enabled?
If a Kafka topic has both retention.ms=86400000 (1 day) and log compaction enabled, what is the retention behavior?
AKafka deletes all messages after 1 day regardless of compaction.
BKafka ignores retention.ms and only uses log compaction to delete messages.
CKafka deletes messages older than 1 day but retains the latest record for each key indefinitely.
DKafka disables log compaction when retention.ms is set.
Attempts:
2 left
💡 Hint
Think about how log compaction and retention.ms work together.

Practice

(1/5)
1. What does the retention.ms setting control in Kafka?
easy
A. The maximum size of a Kafka topic
B. How long Kafka keeps data before deleting it
C. The number of partitions in a topic
D. The replication factor of a topic

Solution

  1. Step 1: Understand retention.ms meaning

    retention.ms sets the time duration Kafka retains data before deletion.
  2. Step 2: Compare with other options

    Other options relate to size, partitions, or replication, not time retention.
  3. Final Answer:

    How long Kafka keeps data before deleting it -> Option B
  4. Quick Check:

    retention.ms = time-based retention [OK]
Hint: Remember ms means milliseconds, so it's about time [OK]
Common Mistakes:
  • Confusing retention.ms with retention.bytes
  • Thinking it controls topic size
  • Mixing it with partition count
2. Which of the following is the correct way to set a size-based retention policy in Kafka's topic configuration?
easy
A. "retention.bytes" = 1073741824
B. "retention.time" = 604800000
C. "retention.size" = 1073741824
D. "retention.ms" = 1073741824

Solution

  1. Step 1: Identify correct property for size-based retention

    The correct property is retention.bytes for size limits.
  2. Step 2: Check option values and names

    "retention.bytes" = 1073741824 uses retention.bytes with a size value (1GB). Others use wrong keys or time-based keys.
  3. Final Answer:

    "retention.bytes" = 1073741824 -> Option A
  4. Quick Check:

    Size retention uses retention.bytes [OK]
Hint: Size retention uses bytes, so look for retention.bytes [OK]
Common Mistakes:
  • Using retention.time instead of retention.ms
  • Using retention.size which is invalid
  • Confusing retention.ms with size setting
3. Given a Kafka topic with retention.ms=60000 and retention.bytes=1048576, what happens when the topic data reaches 2MB before 60 seconds pass?
medium
A. Kafka waits until 60 seconds pass before deleting any data
B. Kafka deletes data only if both time and size limits are reached
C. Kafka deletes old data immediately because size limit is reached
D. Kafka ignores retention settings and keeps all data

Solution

  1. Step 1: Understand retention.ms and retention.bytes interaction

    Kafka deletes data when either time or size limit is reached, whichever comes first.
  2. Step 2: Analyze given values

    Size limit is 1MB, data reached 2MB before 60 seconds, so size limit triggers deletion immediately.
  3. Final Answer:

    Kafka deletes old data immediately because size limit is reached -> Option C
  4. Quick Check:

    Retention triggers on earliest limit reached [OK]
Hint: Retention deletes when time OR size limit is reached [OK]
Common Mistakes:
  • Thinking both limits must be reached to delete
  • Assuming time limit always overrides size
  • Ignoring size limit when time not reached
4. You set retention.ms to a negative value in Kafka topic config. What is the likely outcome?
medium
A. Kafka treats it as infinite retention (never deletes data)
B. Kafka throws a configuration error and refuses to start
C. Kafka deletes data immediately after creation
D. Kafka uses default retention time instead

Solution

  1. Step 1: Check Kafka behavior for negative retention.ms

    Kafka interprets negative retention.ms as infinite retention, meaning no data deletion.
  2. Step 2: Confirm other options

    Kafka does not throw error or delete immediately; it does not revert to default automatically.
  3. Final Answer:

    Kafka treats it as infinite retention (never deletes data) -> Option A
  4. Quick Check:

    Negative retention.ms means infinite retention [OK]
Hint: Negative retention.ms disables deletion, keeps data forever [OK]
Common Mistakes:
  • Expecting an error on negative value
  • Assuming immediate deletion
  • Thinking default value applies automatically
5. You want to configure a Kafka topic to keep data for 2 hours or up to 500MB, whichever limit is reached first. Which configuration is correct?
hard
A. "retention.ms"=7200000 only, size limit is not needed
B. "retention.ms"=7200000 and "retention.bytes"=5000000000
C. "retention.ms"=120 and "retention.bytes"=524288000
D. "retention.ms"=7200000 and "retention.bytes"=524288000

Solution

  1. Step 1: Convert 2 hours to milliseconds

    2 hours = 2 * 60 * 60 * 1000 = 7,200,000 ms.
  2. Step 2: Convert 500MB to bytes

    500MB = 500 * 1024 * 1024 = 524,288,000 bytes.
  3. Step 3: Match values to options

    "retention.ms"=7200000 and "retention.bytes"=524288000 matches both correct values; others have wrong size or time values.
  4. Final Answer:

    "retention.ms"=7200000 and "retention.bytes"=524288000 -> Option D
  5. Quick Check:

    2 hours = 7200000 ms, 500MB = 524288000 bytes [OK]
Hint: Convert hours to ms and MB to bytes carefully [OK]
Common Mistakes:
  • Using seconds instead of milliseconds for retention.ms
  • Confusing MB with bytes without conversion
  • Setting only one limit when both are needed
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