CRDT
Conflict-free Replicated Data Type(競合のない複製データ型)。複数のノードが独立して更新を行っても、最終的に同じ状態に収束することが数学的に保証されたデータ構造。
特徴
- 中央サーバーなしで同期可能
- オフライン編集→後から同期に対応
- 操作の順序に依存しない(可換性)
対比:OT(Operational Transformation)
Operational Transformation(OT)は中央サーバーが操作を変換して競合を解決するアプローチ。Google Docsが採用している。
| 項目 | CRDT | OT |
|---|---|---|
| 中央サーバー | 不要 | 必要 |
| 複雑さ | データ構造に集中 | 変換ロジックに集中 |
| オフライン | 対応しやすい | 難しい |
| 採用例 | Figma, Yjs | Google Docs |
実装例
Yjsはリッチテキスト向けのCRDT実装ライブラリ。