Hi Dario,

On 24.01.14 14:51, Dario Rexin wrote:
Hi *,

I know that some time ago there have been plans to create a dynamo store like system on akka to support actor state replication. This will now be delivered with the eventsourced merge. I still find the idea of building a distributed data store on akka very interesting. As far as I know in akka-persistence, we only have the sequenceNr. per channel.

It is per processor.

Which means that there is only a guaranteed order for events that come from a specific channel. For building an eventual consistent store where any node accepts writes, we would however need a little more than that, namely vector clocks. Are there still plans to integrate something like this into akka? Or would it be possible to make the VectorClock implementation of akka accessible from user code, so that something like this could be built on top? Or did I maybe overlook something and akka-persistence already includes something like this?

Writing to processors with the same processor id on different nodes is currently not supported by akka-persistence i.e. a processor must be a cluster singleton. You can replicate processor state by using views <http://doc.akka.io/docs/akka/snapshot/scala/persistence.html#views>, but these are read-only replicas. Of course, processors with different processor ids are writable on different nodes but these are independent entities for akka-persistence.

Writing to the same processor id on different nodes could be approached using vector clocks and conflict detection, for example, but I personally find using CRDTs for processor state a more compelling approach. You may want to take a look at Jonas' great work-in-progress on Akka CRDT <https://github.com/jboner/akka-crdt>. It is not based on akka-persistence but usage of CRDTs in processors (to support multi-node writes to the same processor id) could be an interesting extension to akka-persistence in 2.4.

Thoughts?


Regards,
Dario
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> 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/groups/opt_out.

--
Martin Krasser

blog:    http://krasserm.blogspot.com
code:    http://github.com/krasserm
twitter: http://twitter.com/mrt1nz

--
     Read the docs: http://akka.io/docs/
     Check the FAQ: http://akka.io/faq/
     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/groups/opt_out.

Reply via email to