CRDT
"Conflict-free Replicated Data Type" コンフリクトしない複製可能なデータ
データ構造がわかりやすい

JSONのobjectはCRDTとみなせる?

マージ時に誰のデータをを最優先にすればいんだろう
arrayは、index数値をkeyとした (小数を許せば全体を変更せずに途中に挿入も可能) objectにすればCRDTになりそう
↑のテキストデータフォーマットと同じように
index数値は小数点を使うことがある
浮動小数点を使うと精度の問題が発生するので、配列をキーに使うとよい
このビジュアライズツールわかりやすい
ライブラリ
deleteされた場合は ItemDeleted という特別なデータを入れておくらしい
tombstone
削除フラグは立てられるが、それ自体を消去することはできない
CRDTでのトランザクションどうするんだろう
yjs に
transact(function(Transaction):void [, origin:any])
ってありますね
single change event が出るのか
CRDTは共同編集だけではなく、分散フレームワークの文脈で出てくる
Riak
Roshi
Akka Distributed Data