josephg / diamond-types

The world's fastest CRDT. WIP.
1.55k stars 29 forks source link

ORDTs and causal trees - comparison (feature- & speed- wise) #6

Open dumblob opened 2 years ago

dumblob commented 2 years ago

I see you're a long-time expert on CRDTs and such. So it's highly probable you'll be already familiar with this.

Nevertheless let me ask what you think about "ORDT"s when compared to the CRDTs implemented here in diamond-types?

About 3 years ago an article about ORDTs (and Causal Trees) explained a (rather highly successfull) attempt to solve the bunch of the hard problems I see diamond-types is trying to tackle. Including generalization for other data types (maybe even hierarchical ones).

I'm also highly interested in the pruning (space & bandwidth) & reconstruction (speed) strategies. Could you elaborate on how that's (meant to be - in case it's pluggable/configurable) solved in diamond-types?

I myself thought about a hybrid strategy I outlined in https://github.com/uwu-tech/Kind/issues/167#issuecomment-820320144 (compare it to https://github.com/automerge/automerge/pull/253 ).

Btw. there seem to be some example implementations of ORDTs - e.g. https://github.com/courajs/referent .

josephg commented 2 years ago

Oooh very cool! Sorry - for some reason issue notifications here are off. I'm not familiar with ORDTs at all. I'll take a look at some of those links. Thanks!