Hello,

Do we have anywhere a set of recommendations for developing new coders? I'm
confused by a couple of things:

- Why are coders serialized by JSON serialization instead of by regular
Java serialization, unlike other elements of the pipeline such as DoFn's
and transforms?

- Which should one inherit from: CustomCoder, AtomicCoder, StandardCoder? I
looked at their direct subclasses and didn't see a clear distinction. Seems
like, when the encoded type is not parameterized then it's CustomCoder, and
when it's parameterized then it's StandardCoder? [but then again
CustomCoder isolates you from JSON weirdness, and this seems useful for
non-atomic coders too]

- Which methods are necessary to implement? E.g. should I implement
verifyDeterministic? Should I implement the "byte size observer" methods?

I'm actually even more confused by the hierarchy between Coder =>
StandardCoder => DeterministicStandardCoder => AtomicCoder => CustomCoder.
DeterministicStandardCoder implements verifyDeterministic(), but it has
subclasses that override this method...

Reply via email to