I had a discussion with Andrey and now think that also the case event-time-timestamp/watermark-cleanup is a valid case. If you don’t need this for regulatory compliance but just for cleaning up old state, in case where you have re-processing of old data.
I think the discussion about whether to have this in the backends is also good to have: I’d say it’s good to have it in the backends because this
(1) decreases state size, for user timers a timer entry is basically a <key, timestamp> whereas if we use backend TTL it’s only the timestamp
(2) can piggyback on log compaction in RocksDB. A user-time manually has to go to state and delete it, which can be costly, while TTL in the backend would happen as-we-go