I’ve come across CRDTs and I’m excited for their potential but I’m concerned that it doesn't really play nicely with databases that I know of. Regardless of whether I use CRDTs during transport, whenever I update my database state, I will still have to do some kind of locking beit pessimistic or optimistic before writing data.<p>Unless there is a DB which accepts CRDTs, OTs or some kind of patchsets as part of its DSL and it handles the concurrency internally? Are there any such databases?<p>Effectively a very sophisticated version of the `UPDATE` command.
SoundCloud's Roshi database is built on LWW-Element-Sets, but doesn't have an explicitly CRDT-based API. It looks like they no longer use it internally, however.<p><a href="https://developers.soundcloud.com/blog/roshi-a-crdt-system-for-timestamped-events" rel="nofollow">https://developers.soundcloud.com/blog/roshi-a-crdt-system-f...</a><p><a href="https://github.com/soundcloud/roshi" rel="nofollow">https://github.com/soundcloud/roshi</a>