I notice https://ci.apache.org/projects/flink/flink-docs-stable/dev/types_serialization.html#rules-for-pojo-types says that all non-transient fields need a setter.
That means that the fields cannot be final. That means that the hashCode() should probably just return a constant value (otherwise an object could be mutated and then lost from a hash-based collection. Is it really the case that we have to either register a serializer or abandon immutability and consequently force hashCode to be a constant value? What are the recommended implementation patterns for the POJOs used in a topology Thanks -Stephen