Feathers: Datenbanksynchronisierung für Offline-First-Apps

Erstellt am 16. März 2016  ·  20Kommentare  ·  Quelle: feathersjs/feathers

FeathersJS scheint ein wahr gewordener Traum zu sein. Für mich fehlt jedoch eine sehr wichtige Funktionalität zum Erstellen von Offline-First-Apps, nämlich die Möglichkeit, entfernte und lokale Datenbanken zu synchronisieren.

Hier ist eine Liste von kinto , die alle Lösungen zeigt, die diese Art von Synchronisierungsfunktionalität bieten. Es gibt bereits eine Localstorage-Datenbank , aber wie würde sie mit einer Remote- CouchDB würde dies ermöglichen?

Discussion Proposal Question

Hilfreichster Kommentar

Universeller (isomorpher) Speicher ist jetzt mit feathers-levelup , mit leveldown (oder einem anderen Speicher-Backend ) im Knoten und level-js im Browser. (danke @ derek-watson!)

Die Synchronisierung der Client- und Serverdienste bleibt dem Leser überlassen, sollte jedoch mit den Echtzeitdatenereignissen unkompliziert sein. Wenn Sie hier Fortschritte machen, würde ich mich über wiederverwendbare Module freuen. Das wäre großartig. :Lächeln:

Alle 20 Kommentare

Ja, zuerst offline müssen Funktionen vorhanden sein. Ich denke, der Anschluss an PouchDB ist einfach, aber ich muss lernen und Spaß mit MongoDB haben (der Grund, warum ich hier bin, ist MongoDB). Es wäre also schön, wenn ich Daten von lokal synchronisieren könnte (funktioniert das über einen Browser ?) Speicher / IndexedDB zu MongoDB auf Remote (wie Minimongo )

TL; DR Ich brauche FeatherJS davon, das nicht aktiv / fehlerhaft ist und veraltet / tot erscheint

Prost

@katopz Derzeit unterstützen wir den automatischen Offline-Modus nicht. Es liegt derzeit bei Ihnen. Wir hatten keine Zeit, es vollständig auszuarbeiten, aber ich bin mir ziemlich sicher, dass alle Teile vorhanden sind, um dies jetzt zu tun.

Sie können https://github.com/feathersjs/feathers-localstorage auf dem Client verwenden. Anschließend sollten Sie nur Hooks einrichten können, um Ihre Daten zwischenzuspeichern. after Ein Dienst gibt Daten zurück oder überprüft Ihren lokalen Speicher-Cache before Ihr Dienst trifft den Server.

Wir werden hoffentlich im nächsten Monat Zeit haben, dies zu konkretisieren. Wenn jemand eine Pause einlegen und eine PR oder einen Leitfaden einreichen möchte, wäre das großartig! :Lächeln:

Wir haben definitiv darüber nachgedacht und die Teile dafür gebaut, hatten aber noch keine Zeit, die Idee fertigzustellen.

Universeller (isomorpher) Speicher ist jetzt mit feathers-levelup , mit leveldown (oder einem anderen Speicher-Backend ) im Knoten und level-js im Browser. (danke @ derek-watson!)

Die Synchronisierung der Client- und Serverdienste bleibt dem Leser überlassen, sollte jedoch mit den Echtzeitdatenereignissen unkompliziert sein. Wenn Sie hier Fortschritte machen, würde ich mich über wiederverwendbare Module freuen. Das wäre großartig. :Lächeln:

Ja! Ich habe Levelup vergessen! Viel: Herz: dafür an @ derek-watson! Technisch können Sie NeDB auch im Browser verwenden. Es gibt also nur wenige verschiedene Optionen für die Speicher-Engine.

Ich denke, es wird eher wie ein Rezept aussehen als wie ein wiederverwendbares Modul. Vielleicht irgendwo ein paar gebündelte Haken. Wenn jemand diesbezüglich Fortschritte macht, teilen Sie dies bitte mit. Andernfalls werden wir wahrscheinlich im nächsten Monat zusammen mit # 227 darauf zurückkommen.

Das Leveldb-Zeug sieht toll aus! Ich denke, dass in Kombination mit https://github.com/feathersjs/feathers/issues/256 eine gute Basis für die Implementierung echter Offline-Funktionen wäre. Die reaktive Erweiterung erleichtert die Implementierung von clientseitigem Fall-Through-Caching erheblich, von dem aus hoffentlich nur ein kleiner Schritt zur vollständigen Offline-Synchronisierung erfolgt.

Ich arbeite an einer Redux-Middleware, um die allgemeinen Offline-Anforderungen für federsjs zu unterstützen.

Ich hoffe, die erste Version bald fertig zu stellen.

@hnordt Super ! Vielleicht haben Sie einen Blick auf @ahdinosaur ‚s nehmen wollen https://github.com/ahdinosaur/feathers-action und @saiichihashimoto‘ s https://github.com/saiichihashimoto/feathers-react-redux für Inspiration oder vielleicht zu zusammenarbeiten!

Vielen Dank, dass Sie @ekryski. Ich gucke mal.

Federn-reagieren-Redux braucht etwas Arbeit, um wirklich brauchbar zu sein, es war nicht gut geplant. ;-);

+1 für die Unterstützung von pouchdb

Ich würde denken, dass die Verwendung von NeDB die beste Offline-Synchronisierungsoption wäre. Es unterstützt bereits die vollständige Abfragesyntax, sodass Sie Abfragen genauso ausführen können, als ob Sie mit dem Server verbunden wären. Es ist lächerlich performant und hat eine steckbare Speicher-Engine für den Browser. Außerdem haben wir bereits einen Adapter dafür gebaut.

+1 für NeDB-Lösung. Ich mag es auch für Server.

NeDB oder LokiJS oder PouchDB?
Im Vergleich zu NeDB würde ich LokiJS bevorzugen, da es noch schneller ist und der Autor einen Plan hatte, eine vollständig kompatible Mongodb-API zu entwickeln.
Für PouchDB ist es vollständig kompatibel mit CouchDB. Mit einem einzigen Befehl kann die Datenbank also mit jedem CouchDB-Server synchronisiert werden.

Loki sieht ziemlich cool aus.

Ich empfehle LinvoDb https://github.com/Ivshti/linvodb3
Es hat Live-Abfragen und skaliert besser als NeDB

Ich habe buchstäblich keine Meinung darüber, was die beste Offline-Speicherlösung ist, da ich nichts über mobilen Speicher und Offline-Erstanwendungen weiß, außer viel manuelle Arbeit mit lokalem Speicher. Aber es lohnt sich wahrscheinlich, in einem bestimmten Kontext darüber nachzudenken, was wir bei Headstart tun / was wir denken, falls einige Schalter für andere umgelegt werden.

Wir möchten unseren Anwendungen im November und Dezember einiges an Offline-Funktionen hinzufügen, damit wir den Kern des Problems noch nicht gelöst haben.

In der Zwischenzeit werden wir wahrscheinlich so etwas wie Redux-Persist für einige unserer Offline-Funktionen verwenden, die wir für ein MVP benötigen.

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

Ich denke, ich denke, gibt es einen Grund, warum Federn einen mobilen lokalen Adapter selbst unterstützen müssen?

Wie von @ekryski angedeutet,

Ich würde eine Bibliothek mit Hooks sehr bevorzugen, die zeigt, wie man basierend auf der mobilen Konnektivität "konsolidiert", die jede Person dann auf jedes lokale Speichersystem anwenden kann, das sie verwenden möchte.

Hoffe das macht Sinn und ich habe es nicht völlig missverstanden.

@ gor181 als Referenz.

@Mentioum Wie läuft dein Nov / Dec MVP? Was hast du gewählt?

Ich habe mich für ForerunnerDB entschieden

Am Sonntag, 27. November 2016, 12:12 Uhr Luke Browell [email protected]
schrieb:

@Mentioum https://github.com/Mentioum Wie läuft Ihr MVP im November / Dezember ?
Was hast du gewählt?

- -
Sie erhalten dies, weil Sie kommentiert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/feathersjs/feathers/issues/264#issuecomment-263144379 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/ACFSMbrn_nO1oyNsoK0F41BqaetzowkNks5rCeQqgaJpZM4HxjN7
.

>

Maximilian Alexander
[email protected]
www.maxofeden.com

@eddyystop leistet großartige Arbeit im Offline-Bereich. Sie finden die Anleitungen mit Links zu allen zugehörigen Repositorys unter https://docs.feathersjs.com/guides/offline-first/readme.html

Spezifische Diskussionen und Fragen sollten an die entsprechenden Repositories gerichtet werden, damit wir dies schließen können.

Dieses Problem wurde automatisch gesperrt, da nach dem Schließen keine Aktivitäten mehr ausgeführt wurden. Bitte öffnen Sie eine neue Ausgabe mit einem Link zu dieser Ausgabe für verwandte Fehler.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen