-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 21.01.2016 06:22, Zubair Quraishi wrote:
> This is great work! Can it be compared to something like Datomic
> and Datascript?
> 
It is mostly complementary with Datascript and it can be combined with
Datomic as well. I have so far basically replicated the transactions
with replikativ before applying them to a Datomic in memory database
or Datascript so far.

The main difference between Datomic and an eventual consistent system
like this is that Datomic has one writer and therefore always a
consistent view on the world, while CRDTs in general are eventually
consistent. Even worse, to get a strong sequential order in CRDTs you
have to introduce conflict management, so the git-like CRDT "CDVCS"
that we have invented can replicate a transaction log, but needs
conflict resolution in the case of multiple writers (different CAP
theorem tradeoffs). We think there are many cases where this is
acceptable. In section 5 are some thoughts so far:
http://arxiv.org/pdf/1508.05545v1.pdf

One idea is to use a CRDT like an OR-set for commutative transactions
(e.g. mostly additions) and find a proper composition of CRDTs for the
semantic of the distributed application you are building. The easiest
way is to model something like Datomic where replikativ is
distributing the transaction log to Datascript and you coordinate
writes on a single peer (Datomic does a lot more like efficient index
creation and distribution for you though...). That way you don't have
to care about conflict resolution in the beginning and if your app
grows you can find a proper CRDT composition.

So in general you need to think a bit more about how you coordinate
your writes and that you pick the proper datatypes for the semantics
and write-load of your application, but you get writable replicas
everywhere. Datomic alone is much easier to handle if you just need
one central server and don't want to have offline writes for example.
Om next can provide you some offline functionality, but this of course
is limited by similar tradeoffs.

A goal of this first release is to better understand how people
approach state modelling in combination with Datascript and how
replikativ can make this easier. We already have snapshot isolation to
compose CRDTs, but I haven't implemented other CRDTs yet, as I would
like to have your input first :).

Did this comparison help you?

Christian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBAgAGBQJWoVT0AAoJEKel+aujRZMkx9EIAJcL8YQbtbP79dguAszbzJdR
iIkYydrrPIAFMF3XFaA65+1Yev97T4SiJbdpf4HBWhz7LUohHfbcz53h/xuVIKhj
jf1JrIgJy7urN3w7WTuLoITQMHFszw6l5wlNm2QK9ijuDlougkfwFgcqu6uddIz2
/pyZ+Efzw/O6S9sLUtVwzKNeE5E1IdJUGuwO3GVyg/kTV3q8ag2mo992yodK7phb
TkwlU5AYikPWCbBg2/daxbOM6Ussgk37n2Gg1VTAJI/B1o3mVpH/SVAbO8/2mKSW
U3yfrX2LGNgaE9rteYF6kdB1tg+eTk8QsWO3BHSp4h8tbVbUPZHYpKc57NqSGLE=
=APNm
-----END PGP SIGNATURE-----

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to