I have a FilterFunction implementation which accepts an argument in its constructor which it stores as an instance member. For example:
class ThresholdFilter implements FilterFunction { private final MyThreshold threshold; private int numElementsSeen; public ThresholdFilter(MyThreshold threshold) { this.threshold = threshold; } <more code> } The filter uses the threshold in deciding whether or not to filter the incoming element. All this works but I have some gaps in my understanding. 1. How is this filter stored and recovered in the case of a failure. Is it just serialized to a POJO and stored in the configured state backend? 2. When recovered will it maintain the state of all members (e.g. note that I have a numElementsSeen member in the filter which will keep incrementi for each element recevied). 3. Is this sort of thing even advisable for a filter? I'm guessing Filters are meant to be reusable across operator instances. In which case the state could be wrong after recovery? Thanks in advance Tim