A edição multiusuário enfrenta um problema fundamental: quando duas pessoas editam o mesmo documento offline ou em conexões diferentes, ambas as cópias mudam, e alguém precisa reconciliá-las. As abordagens tradicionais ou bloqueiam partes do documento — impedindo a colaboração — ou usam transformação operacional, cujas combinações de estado explodem e são notoriamente difíceis de provar corretas.
Em 2011, Marc Shapiro e colegas propuseram os tipos de dados replicados sem conflito (CRDTs): estruturas de dados projetadas para que atualizações concorrentes comutem. Se toda atualização comuta e as mesclagens são associativas, réplicas que divergiram podem ser mescladas em qualquer ordem e ainda assim convergir para um único estado idêntico, sem coordenador central e sem diálogo de conflito. Registradores, contadores, conjuntos e editores de texto podem todos ser construídos dessa forma.
A teoria se consolidou nos anos seguintes: o artigo OpSets de 2018, de Martin Kleppmann e colegas, construiu um arcabouço executável que verifica mecanicamente algoritmos de tipos de dados replicados, expôs uma propriedade de correção para texto colaborativo que vários algoritmos publicados violavam, e especificou uma operação de movimentação atômica antes considerada impossível sem locks.
Sistemas em produção adotaram a ideia. O motor multiusuário do Figma é explicitamente inspirado na pesquisa sobre CRDTs: seu design autoritativo no servidor, por propriedade, funciona como um registrador de última escrita vence, escolhido depois que a empresa rejeitou a transformação operacional por considerá-la desnecessariamente complexa. Redis, Riak e Cosmos DB oferecem tipos de dados baseados em CRDTs, e o Apple Notes usa CRDTs para sincronizar edições offline entre dispositivos.
Tornar o tipo de dados comutativo na mesclagem por design
Mesclagens comutativas tornam o resultado independente da ordem das atualizações
Réplicas podem editar offline e convergir sem qualquer autoridade central
A verificação mecânica substituiu provas de correção vagas
Produtos no estilo Figma obtiveram colaboração em tempo real sem a complexidade da OT
Se a coordenação é o gargalo, redesenhe os dados para que a coordenação seja desnecessária: escolha operações cujos resultados sejam independentes da ordem, e usuários concorrentes ganham consistência de graça.
Os CRDTs são hoje a resposta padrão para colaboração e replicação offline-first: a sincronização multiusuário do Figma, os tipos de dados do Apple Notes, do Redis e do Riak, e ferramentas de edição ponto a ponto se baseiam na ideia, e a linha de pesquisa continua com as partes difíceis da edição de texto, movimentação de árvores e cenários bizantinos.
CONFIRA AS EVIDÊNCIAS
As fontes
- OpSets: Sequential Specifications for Replicated Datatypes arXiv · arxiv.org ·
- How Figma's multiplayer technology works Figma Engineering Blog · figma.com
- Conflict-free replicated data type Wikipedia · en.wikipedia.org