- Conflict-free Replicated Data Types(CRDT)についてのインタラクティブな入門記事
- 別のコンピュータ(ピア)に保存され、ネットワークリクエストや他のピアへの確認なしに即座に更新できるデータ構造の一種
- CRDTは、Google DocsやFigmaのような高度なコラボレーションアプリを、中央サーバーによる同期要件なしに構築するのに非常に適している
- CRDTには、状態ベースと操作ベースの2種類がある
- 状態ベースCRDTはすべての状態をピア間で送信し、新しい状態はそれらすべての状態をマージすることで得られる
- 操作ベースCRDTはユーザーが行った操作だけを送信し、それを新しい状態の計算に利用できる
- この記事は状態ベースCRDTに焦点を当て、プリミティブなCRDTを構築する方法、より複雑なデータ構造へと組み合わせる方法、そして共同作業向けのピクセルアートエディタを構築する方法を説明している
- Last Write Wins Register(LWW Register)という概念を紹介しており、これは単一の値を保持し、タイムスタンプを使って現在の値を最後に書き込まれた値で上書きする単純な種類のCRDTである
- また、Last Write Wins Map(LWW Map)という、より複雑な種類のCRDTの概念も紹介しており、これは複数の値を保持する
- LWW RegisterとLWW Mapがどのように動作するかを理解するのに役立つインタラクティブなプレイグラウンドが含まれている
- 次の記事では、この文章で説明した概念を使って共同作業向けのピクセルアートエディタを構築することに焦点を当てる予定
2件のコメント
かなり面白い内容ですね。Googleドキュメントのようなリアルタイム共同編集が可能なアプリがどう実装されているのか気になっていたのですが……
Hacker Newsのコメント