Descrição do projeto
TraduzidoDentro, a mesclagem deve ser sem conflitos, então esperamos um motor baseado em CRDT ou transformações operacionais, não um esquema ingênuo de 'última escrita vence'. Edições simultâneas de diferentes clientes devem convergir para exatamente o mesmo estado final em cada máquina, independentemente da ordem de entrega de pacotes e atrasos na rede. O trabalho offline é importante para nós: um usuário que perde a conexão deve ser capaz de continuar editando localmente, e suas alterações devem ser reconciliadas automaticamente quando a conexão for restaurada, sem um diálogo de mesclagem e sem perder caracteres digitados. Também precisamos de um histórico completo de versões com instantâneas nomeadas, um feed visual de edições e a capacidade de restaurar ou comparar qualquer revisão anterior.
O transporte deve ser construído sobre WebSocket com reconexão automática e gerenciamento de pressão de retorno, e todo o sistema deve escalar através de múltiplos documentos e múltiplos editores concorrentes para que o servidor não se torne um gargalo. Pedimos que você trate isso como trabalho de produção: nos importamos com APIs limpas, testes em torno da lógica de mesclagem e documentação clara para que nossa equipe possa manter o projeto daqui para frente.
— Cursores ao vivo, seleções e indicador de presença para cada usuário
— Motor de mesclagem CRDT/OT com garantia de convergência
— Edição offline com reconciliação automática na reconexão
— Comentários embutidos, tópicos de discussão e histórico completo de versões