CRDT
Conflict-free Replicated Data Type(競合のない複製データ型)。複数のレプリカを独立に更新しても、調整なしで必ず同じ最終状態に収束するデータ構造。
大きく二つの系統がある。状態ベース(CvRDT)はレプリカが状態全体を交換し、可換な演算でマージする。操作ベース(CmRDT)は因果順序を保って操作を交換する。基本部品はG-Counter、OR-Set、LWW-Register、RGA(テキスト用)などだ。
Figma、Linear、Apple Notes、Riak、Redisの CRDT、そして「ローカルファースト」運動の寵児であるAutomergeやYjsが採用している。代償は、墓標(tombstone)とメタデータが増え続けることで、定期的なガベージコレクションが要る。