Сильная согласованность с базой данных Firebase в реальном времени - PullRequest
0 голосов
/ 01 июля 2019

Предлагает ли база данных Firebase в реальном времени строгая согласованность ?

В некоторых случаях мы используем базу данных Firebase в режиме реального времени:

Сценарий 1

  1. Мобильный клиент записывает item документ в /items
  2. Сервер A (Облачная функция) прослушивает /items и вызывает Сервер B через POST /processItem/:itemID
  3. Сервер B выбирает items/:item и начинает обработку
  4. После обработки Сервер B пишет item.processedAt = <timestamp>

Логика сценария 1, кажется, работает нормально, однако мы начали задаваться вопросом, действительно ли Firebase предлагает строгую согласованность и можем ли мы быть уверены, что когда Сервер B получит items/:itemID из Firebase документ безусловно существует.

Сценарий 2

  1. Сервер A записывает item документ в /items
  2. Сервер A звонит Сервер B через POST /processItem/:itemID
  3. Сервер B получает items/:itemID и начинает обработку
  4. После обработки Сервер B пишет item.processedAt = <timestamp>

Это потенциально еще более «рискованно», поскольку Сервер A может вызвать Сервер B потенциально даже до того, как событие child_added сработало бы.

Оба эти сценария безопасны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...