Figma's Multiplayer Editing: A Simplified CRDT Approach

Four years ago, Figma embarked on building multiplayer functionality, opting for a custom-built system instead of the popular Operational Transform (OT) algorithm. Driven by a need for rapid iteration and concerns about OT's complexity, they created a simpler solution. This post details Figma's multiplayer system architecture, including its client/server architecture, WebSocket communication, offline editing capabilities, and data synchronization. While inspired by CRDTs (Conflict-free Replicated Data Types), Figma's implementation deviates from strict CRDT adherence, leveraging its principles while benefiting from a centralized server for efficiency and simplicity. The article contrasts OTs and CRDTs, delving into Figma's data structure design and how it handles edge cases.
Read more