I have some jobs where I can configure the TTL duration for certain
operator state. The problem I'm noticing is that when I make changes in the
TTL configuration the new state descriptor becomes incompatible and I
cannot restart my jobs from current savepoints. Is that expected?

More precisely, I'm using this when myConfig.durationTTL() > 0:

```java
newBuilder(Time.fromDuration(myConfig.durationTTL()))
          .setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite)
          .setStateVisibility(StateTtlConfig.StateVisibility.NeverReturnExpired)
          .build();
```

and this otherwise for the disabled case (myConfig.durationTTL() == 0):

```java
newBuilder(Time.milliseconds(Long.MAX_VALUE))
          .setUpdateType(StateTtlConfig.UpdateType.Disabled)
          .build();
```

What I'd like is to never break the state regardless of the duration value.
Is it possible to reconcile these cases?

Reply via email to