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