I have to take issue with "really hard" -- I'm using Kryo for my Akka
Persistence, and it's working well.  It's totally possible to handle schema
evolution with it, and it is *not* rocket science.

That said, I'll agree that it isn't trivial by any means: I put a
significant amount of effort into getting it all working.  I have a
whitepaper in-process
<https://www.querki.net/u/jducoeur/scala-notes/#!.7w4g89n> that details all
the considerations and how I addressed them; I'll talk that up a bit once I
have it finished.  (And I might wind up releasing a tiny library for the
annotations and other details I developed around it.)

Overall, the summary is that, yes, Kryo *is* more effort than Protobuf, and
there's a distinct difference of viewpoint: you have to be annotating the
serialization details *somewhere*, and in the case of Kryo it requires
annotating your serialized classes to a significant degree.  Personally, I
prefer that approach, but there is plenty of room for honest disagreement
here.

(And specifically to Dai, note that Akka Persistence absolutely requires
thinking in a "schema"-ish way -- even when using Kryo, you have to be more
explicit about the schema details, although not in external config files.)

On Fri, Mar 17, 2017 at 6:25 AM, Akka Team <[email protected]> wrote:

> If you use a tool that automagically makes protocol out of classes it is
> really hard to deal with wire compatibility, giving guarantees that old
> messages can still be deserialized, for example on rolling upgrades, or
> when stored (akka-persistence) for a longer period of time. Both these
> aspects are important to all Akka specific messages. In addition to that
> the schema allows us to do optimizations we could not do without it,
> default cases by sending no data at all when possible for example.
>
> If you have a use case where none of those things matters, kryo or any
> other schema-less can be perfectly fine.
> Personally I still prefer explicit protocols over implicit ones, but that
> might be a matter of taste.
>
> --
> Johan
> Akka Team
>
> --
> >>>>>>>>>> Read the docs: http://akka.io/docs/
> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/
> current/additional/faq.html
> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
> ---
> You received this message because you are subscribed to the Google Groups
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to