~/questoes/programacao
CRDTs são estruturas de dados matemáticas que permitem resolver automaticamente conflitos quando múltiplos clientes modificam os mesmos dados offline e depois sincronizam. Diferente de arquiteturas centralizadas como Next.js tradicional, CRDTs garantem consistência sem necessidade de servidor arbitrar qual mudança é válida.
A alternativa correta está em usar algoritmos matemáticos para mesclar mudanças automaticamente. CRDTs implementam regras matemáticas que definem como operações de diferentes clientes podem ser combinadas de forma consistente, independente da ordem em que chegam. Isso é o que torna possível a sincronização distribuída e offline-first.
CRDTs usam propriedades matemáticas (como comutatividade e idempotência) para garantir que mudanças podem ser automaticamente mescladas. Se dois usuários editam o mesmo documento offline, o algoritmo CRDT combina as edições de forma consistente sem perder nenhuma mudança.
Descartar conflitos é exatamente o oposto do que CRDTs fazem. Essa abordagem perderia dados e trabalho do usuário. CRDTs preservam todas as operações válidas e as mesclam inteligentemente, não descarta nenhuma.
Bloquear atualizações até o servidor resolver é a estratégia de arquiteturas centralizadas tradicionais (como Next.js convencional). Local first com CRDTs funciona justamente para evitar esses bloqueios e permitir que o usuário continue trabalhando offline.
Enviar tudo para o servidor decidir é novamente uma abordagem centralizada que depende de disponibilidade de conexão. CRDTs movem a resolução de conflitos para o cliente, permitindo funcionamento completamente offline e sem latência de rede.