Edição Multijogador do Figma: Uma Abordagem CRDT Simplificada

Quatro anos atrás, o Figma começou a construir a funcionalidade multijogador, optando por um sistema personalizado em vez do popular algoritmo Operational Transform (OT). Impulsionados pela necessidade de iteração rápida e preocupações com a complexidade do OT, eles criaram uma solução mais simples. Este artigo detalha a arquitetura do sistema multijogador do Figma, incluindo sua arquitetura cliente/servidor, comunicação WebSocket, recursos de edição offline e sincronização de dados. Embora inspirado em CRDTs (Conflict-free Replicated Data Types), a implementação do Figma se desvia da adesão estrita ao CRDT, aproveitando seus princípios enquanto se beneficia de um servidor centralizado para eficiência e simplicidade. O artigo contrasta OTs e CRDTs, aprofundando-se no design da estrutura de dados do Figma e em como ele lida com casos de borda.