This feature enables lazy background cleanup of state with time-to-live in state keyed backend which stores state in JVM heap. The idea is to keep a global state lazy iterator with loose consistency. Every time a state value for some key is accessed or a record is processed, the iterator is advanced, TTL of iterated state entries is checked and the expired entries are cleaned up. When the iterator reaches the end of state storage it just starts over. This way the state with TTL is regularly cleaned up to prevent ever growing memory consumption. The caveat of this cleanup strategy is that if state is not accessed or no records are processed then accumulated expired state still occupies the storage.