CRDT (Conflict-free Replicated Data Type)
複製してもコンフリクトしないデータ型。各レプリカが独立に更新しても、後でマージすると必ず同じ状態に収束する(強い結果整合性)。CAP定理のうち A(可用性)と P(分断耐性) を満たすため、ネットワーク分断下でも書き込み続行できる。
用途
- リアルタイム共同編集(複数クライアントが同時にテキスト編集)
- オフライン優先アプリの状態同期
合意アルゴリズムとの対比
強い一貫性 (C) が必要な場面では合意アルゴリズムを使う:
- Paxos — 分散合意アルゴリズム。正しく完璧に実装できる人がいないと言われるほど難解で、暗黙的な前提も多い。理解しやすさを狙った Raft が後継として広まった。
CRDT は「衝突を起こさせない」設計、Paxos/Raft は「単一の合意値を確定させる」設計、という補完関係にある。
関連: distributed-consensus-raft / database-transaction-theory / _moc-algorithm