Figmaのマルチプレイヤー編集:簡素化されたCRDTアプローチ

4年前、Figmaはマルチプレイヤー機能の構築に着手し、一般的なOperational Transform(OT)アルゴリズムではなく、カスタムビルドシステムを選択しました。迅速なイテレーションの必要性とOTの複雑さに対する懸念から、よりシンプルなソリューションを作成しました。この記事では、Figmaのマルチプレイヤーシステムアーキテクチャを詳細に説明します。クライアント/サーバーアーキテクチャ、WebSocket通信、オフライン編集機能、データ同期などが含まれます。CRDT(Conflict-free Replicated Data Types)から着想を得ていますが、Figmaの実装は厳密なCRDTへの準拠から外れており、その原則を活用しながら、効率性とシンプルさを実現するために集中型サーバーの利点を活用しています。この記事ではOTとCRDTを比較し、Figmaのデータ構造の設計と、境界条件の処理方法について詳しく説明します。
続きを読む