Skip to content
LakeBench
ProblemsCommunityPricing
Sign inStart practicing
Back
  1. Home
  2. Interview prep
  3. Delete vs compact retention

Kafka · Advanced Kafka

Delete vs compact retention

Mediumkafka-22
retentioncleanup.policydeletecompact

Question

What is the difference between delete retention and compact retention in Kafka?

Solution

Kafka topics have a cleanup policy that decides how old data is reclaimed.

delete (time/size retention)

  • Default for many event topics.
  • Segments older than retention.ms (or exceeding retention bytes) are deleted.
  • Entire old segments go away, regardless of keys.
  • Use for clickstreams, logs, immutable event history where old data can expire.
delete policy:
  keep last 7 days of events, then drop old segments

compact (key-based retention)

  • Cleanup policy compact.
  • Retains latest record per key.
  • Older keyed records may be removed even if "recent" history of that key is superseded.
  • Use for changelogs / current-state topics.

Both (compact,delete)

Many production changelog topics use both:

  • Compact to keep latest per key
  • Also delete very old tombstones / enforce a retention ceiling
cleanup.policy=delete          → expire by time/size
cleanup.policy=compact         → keep latest per key
cleanup.policy=compact,delete  → both behaviors

Choosing in interviews

| Data shape | Policy | |---|---| | Immutable events (orders placed) | delete | | Upserts / CDC entity state | compact (often + delete) | | Need full replay forever | increase retention / archive out of Kafka |

Interview tip: "delete removes old segments by time/size; compact keeps the last value per key."

PreviousNext