alcinnz, (edited )
@alcinnz@floss.social avatar

Conflict-free Replicated Data Types (CRDTs) are a huge opportunity for FOSS projects like LibreOffice, Blender, Inkscape, etc to offer the collaborative features of e.g. Google Docs without involving the cloud!

Put simply CRDTs suggest that if you (re)architect your model right it'll double as your undo stack & give you collaborative editting features. Merge changes as frequently or infrequently as you like, as long as it's deterministic & you never merge-conflict.

https://www.inkandswitch.com/local-first/

1/2

alcinnz,
@alcinnz@floss.social avatar

Originally CRDT stood for "Commutative Replicated Data Types" but then we figured out that we could incorporate vector-clocks for non-commutative edits. So you could override a property & compare vector clocks to make the merge deterministic.

A vector clock is a means of modelling subjective time. You track your knowledge of all other participants' clocks.

Other issue: minimizing the overhead of each edit on disk or over the net. Ink&Switch found this compresses very well! Not an issue.

2/2

OliverUv,
@OliverUv@mastodon.social avatar

@alcinnz additionally to anyone interested in a disputation of the claims that CRDTs can't be performant, this talk by Kleppmann is excellent: https://youtu.be/x7drE24geUw

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • kavyap
  • ngwrru68w68
  • tacticalgear
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • thenastyranch
  • Youngstown
  • khanakhh
  • everett
  • slotface
  • Durango
  • rosin
  • osvaldo12
  • megavids
  • normalnudes
  • cubers
  • GTA5RPClips
  • InstantRegret
  • cisconetworking
  • anitta
  • ethstaker
  • Leos
  • modclub
  • tester
  • provamag3
  • JUstTest
  • lostlight
  • All magazines