Aplicativos locais
O desenvolvimento local é o novo garoto do bairro. Assim como React e amigos, local-first mantém os dados em dois lugares, mas de uma maneira radicalmente diferente. Na sua forma mais essencial, significa executar um banco de dados no navegador que é mantido alinhado com o armazenamento de dados remoto por meio de um mecanismo de sincronização. Esse tipo de coisa já foi feito antes com bancos de dados NoSQL como CouchDB ou com a API IndexedDB, mas o navegador moderno leva isso a outro nível com um mecanismo de banco de dados baseado em Wasm, como SQLite.
O usuário obtém uma pequena visão dos dados completos, chamada de replicação parcial ou bucket (também chamada de “forma”). O aplicativo front-end interage diretamente com esses dados, e a infraestrutura faz automaticamente o trabalho de manter tudo sincronizado. Um grande benefício aqui é o forte suporte offline (porque o dispositivo cliente carrega um banco de dados real).
Este é um grande afastamento do ciclo de solicitação-resposta. No local primeiro, você não busca dados; você se inscreve nele. A rede se torna um daemon de segundo plano que reconcilia o estado local e remoto usando CRDTs (tipos de dados replicados sem conflitos). Os CRDTs garantem que, se dois usuários editarem uma tarefa off-line, a mesclagem será perfeita e não confusa.
