-----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.