Kafka retention can be time-based, size-based, or log-compacted. Compaction keeps the latest record for each key and is useful for rebuilding current state, while ordinary retention preserves a time window of events for replay.
Event schemas should evolve compatibly. Add optional fields with defaults before removing old fields, and use a registry or explicit versioning so producers and consumers can roll out independently.