akka/akka-core

Provide a 'tree' CRDT type

オープン

#30,753 opened on 2021/10/06

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)Scala (3,547 件のフォーク)batch import
help wantedt:distributed-data

Repository metrics

Stars
 (13,277 個のスター)
PR merge metrics
 (平均マージ 8d 19h) (30d で 10 merged PRs)

説明

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.

コントリビューターガイド