advanced

Kafka compaction

Используйте log compaction для latest-value streams keyed by entity, понимая tombstones, rebuild behavior и loss of event history.

Compaction сохраняет latest record per key, удаляя старые версии — для changelog topics с entity state (user profile, config). Tombstones с null value удаляют keys после delete.retention.ms.

Компромисс: теряется полная event history; consumers, rebuilding state, должны понимать compaction semantics и tombstones.

На интервью: compacted topic для product catalog updates vs immutable order event log.

Типовые ошибки: compaction на topics с нужной полной историей; нет tombstones — zombie keys; consumers предполагают полный replay.

Чеклист:

  • Compaction только для keyed latest-value streams.
  • Tombstones на delete с правильным timing.
  • Тест consumer rebuild из compacted log.
  • Разделяйте changelog и immutable event logs.