Hello Mario,
Thanks for your interest!

We are currently evaluating persistence options for our backend. We are
> looking at akka-persistence but we have a couple of concerns:
>
> 1. How stable is the API now? Is it close enough to "final" that we could
> depend on it and not having to make code changes when 2.4 comes out?
>

Disclaimer before I write up my tips:
Things can change, so don't treat my response as full blown guarantee, but
we are pretty sure about a few things that I can explain below.

1) The "write side", as in `PersistentActor` will stay as is, nothing
ground breaking should change there.
    We do not expect much changes other than the already committed
deprecations ("the old api"), if you jump into persistence now this is a
non-concern for you, as you simply will not use the old APIs anyway.

2) The "read side" will change heavily. PersistentView will change (or be
blown into oblivion in it's current form), as we want to expose all read
side features as streams of events,
    Please read Roland's excellent write-up about our plans for the "read
side": *Akka Persistence on the Query Side: The Conclusion
<https://groups.google.com/forum/#!topic/akka-user/MNDc9cVG1To>*
    It has taken a great amount of community feedback and thinking to get
to this plan, we hope you'll love the new read side once it's out :-)

3) Journal plugins will have to recompile, as 2.3 => 2.4 won't be binary
compatible (as per our binary compatibility guidelines, we keep it only in
minor releases – 2.4 is a major one).

4) Journal plugins will most likely need to implement some new features, so
expect a little bit of lag once the new Journal API is out, until all
journals have implemented it (as in, we have to demand more of them,
because of 2) – the new "read side").

5) We will be helping Journal implementors by providing a TCK. We hope to
increase their quality as well, by providing such TCK (one is already
available, but it will have to include the new features).

6) 2.4 will be a Long Term Support release, so once it's out you should be
good for a "very long time" on it.


>  2. How do we migrate the schema between versions of our API? For
> example, suppose we add or remove a field from a persisted message. How
> would we migrate all the stored data to the new API? Keeping the old
> messages around and creating new ones sounds like a good way of getting
> namespace/API pollution.
>

This is a question about schema evolution in general.
We have discussed it in quite some detail in this thread: *Best practices
using Akka Persistence with long-running projects
<https://groups.google.com/forum/#!topic/akka-user/xNtxm8sLtO0> *
In general you'll need to pick a serialisation format, and use it's
specific features to evolve your schema :-)
Your example of removing a field is simply not possible in some formats,
while in some other formats you can do it easily,
so I'd redirect the question to serialisation providers and that thread
which I've linked.

I hope this helps!

-- 
Cheers,
Konrad 'ktoso' Malawski
hAkker @ Typesafe

<http://typesafe.com>

-- 
>>>>>>>>>>      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 http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to