Нам нужно сохранить наши данные Firebase в синхронизации с другими databases для full-text search (в ElasticSearch) и другими типами запросов, которые Firebase не поддерживает.
Это должно быть как можно ближе к реальному времени, мы не можем просто экспортировать ночной дамп Firebase JSON или что-то в этом роде, кроме того, что это будет довольно большим.
Моя первоначальная мысль заключалась в том, чтобы запустить клиент Node.js, который прослушивает события child_changed, child_added, child_removed и т.д. всех основных списков, но это может быть немного неумелым и будет ли оно надежный способ синхронизации, если клиент повторно подключается через определенный промежуток времени?
Моя следующая мысль заключалась в том, чтобы поддерживать список событий "измененных элементов" и записывать их каждый раз, когда элемент создается или обновляется, подобно Firebase work queue. Очередь может содержать полный путь к данным, которые были изменены, и рабочий просто потребляет это и соответственно обновляет локальную базу данных.
Проблема здесь - это каждый бит кода, который заставляет обновления помнить, чтобы писать в эту очередь, иначе две системы выйдут из синхронизации. Некоторый прокси-код не должен быть слишком сложным для записи.
Кто-нибудь еще сделал что-либо подобное с любым успехом?