Feathers: Sincronização de banco de dados para aplicativos offline primeiro

Criado em 16 mar. 2016  ·  20Comentários  ·  Fonte: feathersjs/feathers

FeathersJS parece um sonho que se tornou realidade. Mas, para mim, está faltando uma parte essencial da funcionalidade para criar aplicativos off-line primeiro, que é a capacidade de sincronizar bancos de dados locais e remotos.

Aqui está uma lista de kinto que mostra todas as soluções que oferecem esse tipo de funcionalidade de sincronização. Já existe um banco de dados de armazenamento local , mas como ele sincronizaria com um banco de dados remoto? Um plugin para CouchDB tornaria isso possível?

Discussion Proposal Question

Comentários muito úteis

o armazenamento universal (isomórfico) agora é possível usando feathers-levelup , com leveldown (ou qualquer outro backend de armazenamento ) no nó e level-js no navegador. (obrigado @ derek-watson!)

manter os serviços de cliente e servidor em sincronia é deixado para o leitor, mas deve ser direto com os eventos de dados em tempo real . Se você fizer algum progresso aqui, eu agradeceria qualquer módulo reutilizável, isso seria incrível. :sorriso:

Todos 20 comentários

Sim, offline primeiro é necessário ter recursos. Acho que fazer hook com o PouchDB é fácil, mas o que eu preciso é aprender e me divertir com o MongoDB (o motivo de estar aqui é o MongoDB), então seria bom se eu pudesse sincronizar (está funcionando via navegador ?) Dados locais armazenamento / IndexedDB para MongoDB remotamente (como minimongo )

TL; DR Eu preciso do FeatherJS deste que não está ativo / com erros e parece desatualizado / morto

Saúde

@katopz atualmente não suportamos o modo offline automático. Isso é deixado para você atualmente. Não tivemos tempo para dar corpo a tudo, mas tenho quase certeza de que todas as peças estão no lugar para fazer isso agora.

Você pode usar https://github.com/feathersjs/feathers-localstorage no cliente e então você deve ser capaz de apenas configurar ganchos para armazenar em cache seus dados after um serviço retorna dados ou verificar seu cache de armazenamento local before seu serviço chega ao servidor.

Esperamos ter tempo para aprofundar isso no próximo mês ou assim. Se alguém quiser dar uma chance e enviar um PR ou um guia, isso seria incrível! :sorriso:

Definitivamente, estivemos pensando sobre isso e construindo as peças para isso, mas ainda não tivemos tempo de terminar a ideia.

o armazenamento universal (isomórfico) agora é possível usando feathers-levelup , com leveldown (ou qualquer outro backend de armazenamento ) no nó e level-js no navegador. (obrigado @ derek-watson!)

manter os serviços de cliente e servidor em sincronia é deixado para o leitor, mas deve ser direto com os eventos de dados em tempo real . Se você fizer algum progresso aqui, eu agradeceria qualquer módulo reutilizável, isso seria incrível. :sorriso:

Sim! Eu esqueci do levelup! Muito: coração: para @ derek-watson por isso! Tecnicamente, você também pode usar o NeDB no navegador. Portanto, existem algumas opções diferentes de mecanismo de armazenamento.

Acho que vai se parecer mais com uma receita do que com qualquer módulo reutilizável. Talvez alguns ganchos empacotados em algum lugar. Se alguém fizer algum progresso nisso antes de nós, por favor, compartilhe. Caso contrário, provavelmente chegaremos a isso no próximo mês, juntamente com o # 227.

O material do leveldb parece ótimo! Acho que combinado com https://github.com/feathersjs/feathers/issues/256 seria uma boa base para implementar funcionalidade offline real. A extensão reativa tornará muito mais fácil implementar coisas como cache de fall-through do lado do cliente, a partir do qual será apenas um pequeno passo para a sincronização offline completa.

Estou trabalhando em um middleware Redux para oferecer suporte a necessidades offline comuns para penasjs.

Espero terminar a primeira versão em breve.

@hnordt Awesome! Você pode querer dar uma olhada em @ahdinosaur 's https://github.com/ahdinosaur/feathers-action e @saiichihashimoto' s https://github.com/saiichihashimoto/feathers-react-redux de inspiração ou talvez colaborar!

Obrigado @ekryski. Vou dar uma olhada.

penas-react-redux precisa de algum trabalho para ser realmente utilizável, não foi bem planejado. ;-)

+1 para adicionar suporte de pouchdb

Eu acho que usar o NeDB seria a melhor opção de sincronização offline. Ele já suporta a sintaxe completa de consulta, portanto, você pode realizar consultas a ele da mesma forma como se estivesse conectado ao servidor. É ridiculamente ter um desempenho e tem um mecanismo de armazenamento plugável para o navegador. Além disso, já temos um adaptador construído para isso.

1 para solução NeDB. Eu gosto disso para o servidor também.

NeDB ou LokiJS ou PouchDB?
Compara ao NeDB Eu prefiro LokiJS, pois é ainda mais rápido e o autor tinha um plano para desenvolver uma API mongodb totalmente compatível.
Para PouchDB, é totalmente compatível com CouchDB. Portanto, usando um único comando, o banco de dados pode ser sincronizado com qualquer servidor CouchDB.

Loki parece muito legal.

Eu recomendo LinvoDb https://github.com/Ivshti/linvodb3
Ele tem consultas ao vivo e escala melhor do que NeDB

Literalmente, não tenho nenhuma opinião sobre qual é a melhor solução de armazenamento offline, pois não sei nada sobre armazenamento móvel e primeiros aplicativos offline além de fazer muito trabalho manual com armazenamento local. Mas provavelmente vale a pena colocar em algum contexto o que estamos fazendo no Headstart / o que estamos pensando no caso de mudar alguns interruptores para outros.

Estamos procurando adicionar um pouco de capacidade off-line aos nossos aplicativos em novembro, dezembro, então ainda não abordamos o cerne do problema.

Nesse ínterim, provavelmente usaremos algo como redux-persist para alguns de nossos recursos offline de que precisamos para um mvp.

https://github.com/rt2zz/redux-persist

Suponho que o que estou pensando é que existe um motivo pelo qual as penas precisam ser compatíveis com o próprio adaptador local móvel?

Como aludido por @ekryski, um conjunto de ganchos reutilizáveis ​​em uma biblioteca pode ser uma ideia melhor. Tentar oferecer suporte a muitos adaptadores para dispositivos móveis e também do lado do servidor pode ser um escopo um pouco exagerado para plenos de suporte dado (mesmo acima) o número de soluções diferentes que as pessoas estariam usando e solicitando?

Eu, por exemplo, preferiria uma biblioteca de ganchos mostrando como 'consolidar' com base na conectividade móvel que cada pessoa pode então aplicar a qualquer sistema de armazenamento local que deseja usar.

Espero que isso faça sentido e eu não tenha entendido completamente mal.

@ gor181 para referência.

@Mentioum como está seu MVP de novembro / dezembro, o que você decidiu usar?

Eu escolhi usar ForerunnerDB

No domingo, 27 de novembro de 2016, 12:12 Luke Browell [email protected]
escrevi:

@Mentioum https://github.com/Mentioum como está o seu MVP de novembro / dezembro,
o que você decidiu usar?

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/feathersjs/feathers/issues/264#issuecomment-263144379 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ACFSMbrn_nO1oyNsoK0F41BqaetzowkNks5rCeQqgaJpZM4HxjN7
.

>

Maximilian Alexander
[email protected]
www.maxofeden.com

@eddyystop está fazendo um ótimo trabalho off-line. Você pode encontrar os guias com links para todos os repositórios relacionados em https://docs.feathersjs.com/guides/offline-first/readme.html

Discussões e perguntas específicas devem ser direcionadas aos repositórios apropriados, então acho que podemos encerrar isso.

Este problema foi bloqueado automaticamente, pois não houve nenhuma atividade recente depois que ele foi fechado. Abra um novo problema com um link para este problema para bugs relacionados.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

rrubio picture rrubio  ·  4Comentários

huytran0605 picture huytran0605  ·  3Comentários

eric-burel picture eric-burel  ·  3Comentários

corymsmith picture corymsmith  ·  4Comentários

andysay picture andysay  ·  3Comentários