akka/akka-core

Provide a 'tree' CRDT type

Open

#30,753 opened on Oct 6, 2021

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Scala (13,277 stars) (3,547 forks)batch import
help wantedt:distributed-data

Description

It is already possible to distribute 'trees' in Distributed Data CRDT's by encoding them into the generic ORMap data type. However, that may lead to surprising effects when you encode a 'move' operation as multiple updates of the map: since those updates are distributed independently (and conflicts in those updates are resolved independently), you might end up with a Map that doesn't encode the tree you expected. To avoid such problems, we might provide a Tree CRDT data type that has an explicit 'move' operation, so conflicts involving those can be handled while keeping the tree structure intact.

https://martin.kleppmann.com/papers/move-op.pdf might be interesting inspiration.

Contributor guide