Kafka Retention Interview Questions and Answers
Learn Kafka Retention with real-world interview questions covering retention policies, log segments, cleanup policies, compaction, deletion, event replay, and production best practices.
Kafka Retention Interview Questions and Answers
Kafka is fundamentally different from traditional messaging systems.
Most message queues remove a message immediately after it is consumed.
Kafka does not.
Kafka stores messages based on Retention Policies, allowing consumers to replay historical events whenever required.
Retention is one of the most important Kafka interview topics because it directly affects:
- Storage
- Event Replay
- Disaster Recovery
- Analytics
- Compliance
- Performance
Kafka Storage Model
flowchart LR
Producer --> KafkaTopic["Kafka Topic"]
KafkaTopic["Kafka Topic"] --> LogSegments["Log Segments"]
LogSegments["Log Segments"] --> Consumer
Q1. What is Kafka Retention?
Answer
Kafka Retention defines how long messages remain stored inside Kafka.
Messages are retained even after consumers read them.
Consumers track their own offsets, so Kafka does not delete messages after consumption.
Benefits
- Event Replay
- Fault Recovery
- Audit
- Analytics
- Disaster Recovery
Retention Flow
flowchart LR
Producer --> KafkaLog["Kafka Log"]
KafkaLog["Kafka Log"] --> Consumer
Consumer --> OffsetCommit["Offset Commit"]
KafkaLog["Kafka Log"] --> MessageStillExists["Message Still Exists"]
Q2. Why is Kafka different from traditional message queues?
Answer
Traditional Queue
Message
↓
Consumer
↓
Deleted
Kafka
Message
↓
Consumer
↓
Offset Updated
↓
Message Retained
Kafka separates:
- Message Storage
- Consumer Progress
Comparison
flowchart LR
TraditionalQueue["Traditional Queue"] --> DeleteMessage["Delete Message"]
Kafka --> RetainMessage["Retain Message"]
Q3. What are Kafka Retention Policies?
Answer
Kafka supports two primary cleanup policies:
- Delete
- Compact
Policies
mindmap
root((Retention))
Delete Policy
Compact Policy
Q4. What is Delete Retention Policy?
Answer
Delete Policy removes old messages after the configured retention period or when the topic exceeds the configured size.
Example
Retention Time = 7 Days
Messages older than seven days are deleted automatically.
Delete Policy
flowchart LR
Messages --> RetentionPeriod["Retention Period"]
RetentionPeriod["Retention Period"] --> Delete
Common Use Cases
- Application Logs
- Notifications
- IoT Events
- Metrics
- Streaming Data
Q5. What is Log Compaction?
Answer
Log Compaction keeps only the latest value for each message key.
Example
Customer=100
Address=A
↓
Customer=100
Address=B
After compaction:
Customer=100
Address=B
Older versions are removed while the latest value remains.
Compaction
flowchart LR
OldRecords["Old Records"] --> LogCleaner["Log Cleaner"]
LogCleaner["Log Cleaner"] --> LatestRecord["Latest Record"]
Benefits
- Saves Storage
- Maintains Latest State
- Faster Recovery
Q6. What is a Log Segment?
Answer
Kafka stores partition data in Log Segments.
Instead of one large file:
Partition
↓
Segment 1
↓
Segment 2
↓
Segment 3
Retention and cleanup operate on segments rather than individual messages.
Segment Storage
flowchart LR
Partition --> Segment1["Segment 1"]
Partition --> Segment2["Segment 2"]
Partition --> Segment3["Segment 3"]
Q7. How does Kafka decide when to delete data?
Answer
Kafka deletes data based on configured limits such as:
- Time
- Size
Common configurations:
retention.ms
retention.hours
retention.bytes
Whichever limit is reached first determines when eligible log segments can be removed.
Retention Decision
flowchart TD
RetentionTime["Retention Time"] --> DeleteSegments["Delete Segments"]
RetentionSize["Retention Size"] --> DeleteSegments["Delete Segments"]
Q8. What is Event Replay?
Answer
Because Kafka retains messages, consumers can replay historical events.
Example
Consumer Failed
↓
Restart
↓
Read Old Events Again
Event replay is one of Kafka's biggest advantages over traditional messaging systems.
Replay
flowchart LR
KafkaLog["Kafka Log"] --> Consumer
Consumer --> Restart
Restart --> ReplayEvents["Replay Events"]
Q9. How do consumers use retained messages?
Answer
Consumers maintain offsets independently.
A consumer can:
- Continue from the last committed offset
- Reset offsets
- Replay historical events
Example
Offset 500
↓
Offset Reset
↓
Read From Offset 100
Offset Reset
flowchart LR
Consumer --> OffsetReset["Offset Reset"]
OffsetReset["Offset Reset"] --> ReplayMessages["Replay Messages"]
Q10. What are common retention configurations?
Answer
Frequently used topic properties include:
| Property | Purpose |
|---|---|
retention.ms |
Retention duration |
retention.bytes |
Maximum storage size |
cleanup.policy |
Delete or Compact |
segment.bytes |
Segment size |
segment.ms |
Segment rollover time |
Configuration
flowchart TD
Topic --> Retention
Topic --> CleanupPolicy["Cleanup Policy"]
Topic --> Segments
Q11. What are the production best practices for Kafka Retention?
Answer
Follow these recommendations:
- Choose retention based on business requirements.
- Use Delete Policy for event streams.
- Use Log Compaction for latest-state topics.
- Monitor disk utilization.
- Monitor log segment growth.
- Separate long-retention and short-retention topics.
- Archive important events before expiration.
- Test replay scenarios regularly.
- Use appropriate partition sizing.
- Avoid unnecessarily long retention periods.
Enterprise Architecture
flowchart TD
SpringBoot["Spring Boot"] --> KafkaTopic["Kafka Topic"]
KafkaTopic["Kafka Topic"] --> RetentionPolicy["Retention Policy"]
RetentionPolicy["Retention Policy"] --> Delete
RetentionPolicy["Retention Policy"] --> Compact
KafkaTopic["Kafka Topic"] --> Consumers
Kafka Storage Lifecycle
sequenceDiagram
participant Producer
participant Kafka
participant Consumer
Producer->>Kafka: Publish Event
Consumer->>Kafka: Read Event
Consumer->>Kafka: Commit Offset
Kafka-->>Kafka: Retain Message
Kafka-->>Kafka: Delete/Compact Later
Kafka Retention Overview
mindmap
root((Kafka Retention))
Delete Policy
Log Compaction
Segments
Replay
Offsets
Storage
Cleanup
Delete vs Log Compaction
| Delete Policy | Log Compaction |
|---|---|
| Deletes Old Data | Keeps Latest Record |
| Time or Size Based | Key Based |
| Event Streams | Latest State Topics |
| Simple Cleanup | State Recovery |
| Audit Window | Current Snapshot |
Real Banking Example
A banking platform processes 10 million transactions per day.
Architecture:
Mobile Banking
↓
payments-topic
↓
Retention = 30 Days
↓
Fraud Analytics
↓
Audit
↓
Compliance
↓
Replay if Required
If a fraud investigation begins after two weeks, analysts can replay transaction events because Kafka has retained them according to the configured retention policy.
Senior Interview Tips
Interviewers frequently ask:
- What is Kafka Retention?
- Why doesn't Kafka delete messages after consumption?
- What is Delete Policy?
- What is Log Compaction?
- Delete vs Compact?
- What is Event Replay?
- What are Log Segments?
- How does Kafka decide when to delete data?
- What is
retention.ms? - What is
cleanup.policy? - How do consumers replay events?
- What retention strategy would you use for banking systems?
Remember:
- Kafka retains messages independently of consumer progress.
- Consumers move offsets—not messages.
- Delete Policy removes old data.
- Log Compaction preserves the latest value for each key.
Quick Revision
- Kafka Retention determines how long messages remain stored.
- Messages are retained even after successful consumption.
- Consumers track offsets independently of message storage.
- Delete Policy removes old log segments based on time or size.
- Log Compaction keeps the latest record for each key.
- Kafka stores data in log segments, which are the units of cleanup.
- Event Replay allows consumers to process historical events again.
- Configure retention based on business, compliance, and storage requirements.
- Monitor disk usage, segment growth, and cleanup activity in production.
- Kafka Retention is a key feature that enables replay, recovery, auditing, and resilient event-driven architectures.