Any ideas on the standard way ( or any roundabout way ) of doing a version upgrade that looks back ward compatible. The @FieldSerializer.Optional("0") actually does ignore the field ( even if reset ) giving it the default value if kyro is used. It has to do with the FieldSerializer behaves . There is another Serializer ( Composite I believe ) that allows for such back ward compatible changes.
I know some work is being done in 1.6 to allow for above use case and I think Google Data Flow does provide some avenues. Thanks much Vishal On Tue, Jun 12, 2018 at 11:30 PM, Vishal Santoshi <vishal.santo...@gmail.com > wrote: > I have a running pipe with Window State in a class say > > Class A{ > long a; > } > > It uses the default KryoSerializer > > I want to add a field to > > Class A { > long a; > long b; > } > > I need to suspend with SP and resume with the new version of Class A > > > Is there a definite way to do this. I tried > > Class A { > long a; > @FieldSerializer.Optional("0") > long b; > } > > but that seems to default to 0 , even when the Aggregation is putting in > values. > > Could somebody give pointers as to how to solve this > > Thanks a ton. > > > >