Nous devons garder notre Firebase
données en synchronisation avec d'autres databases
para full-text search
(en ElasticSearch
) et d'autres types de requêtes qui Firebase
n'est pas facile à supporter.
Ce processus doit être aussi proche du temps réel que possible, nous ne pouvons pas exporter un vidage nocturne de la base de données. Firebase JSON
ou quelque chose comme ça, à part le fait que ça va devenir assez gros.
Ma première idée était d'exécuter un Node.js
qui écoute child_changed
, child_added
, child_removed
etc... de toutes les listes principales, mais cela pourrait devenir un peu fastidieux et serait-il un moyen fiable de synchroniser si le client se reconnecte après un certain temps ?
Mon idée suivante était de maintenir une liste d'événements "éléments modifiés" et d'y écrire à chaque fois qu'un élément est créé/mis à jour, de manière similaire à l'approche File d'attente de travail Firebase exemple. La file d'attente peut contenir le chemin d'accès complet aux données qui ont été modifiées et le travailleur se contente de les consommer et de mettre à jour la base de données locale en conséquence.
Le problème ici est que chaque partie du code qui effectue des mises à jour doit se souvenir d'écrire dans cette file d'attente, sinon les deux systèmes seront désynchronisés. Un code proxy ne devrait pas être trop difficile à écrire cependant.
Quelqu'un d'autre a-t-il fait quelque chose de similaire avec succès ?