Hi All,

While working on the integration of Apex with Apache Samoa, I am coming
across some scenarios where I have to add default constructors in some
external classes to make them Kryo serializable. Although this should be
okay, we would like to avoid modifying external classes as far as possible.
Some other streaming engines have taken different approaches towards
serialization.

I looked at Flink and Storm serialization mechanisms.

Storm has a fall back mechanism on Java serialization. It does use Kryo for
serialization due to performance. But, if the class is not serializable
using Kryo, then it will try to serialize it using Java serialization. If
even then it cannot serialize, then it throws an error. [1]

Flink has its own serialization stack where it uses a serializer based on
the type information known about the data. [2]

What does the community think about the current state of serialization in
Apex. Is there a need to explore some approaches which could avoid
serialization issues such as the one described above? Are there any other
approaches one could use?

1.
http://storm.apache.org/releases/current/Serialization.html#java-serialization
2.
https://cwiki.apache.org/confluence/display/FLINK/Type+System,+Type+Extraction,+Serialization


~Bhupesh

Reply via email to