Zookeeper Watches содержит документацию:
«Клиент увидит событие просмотра для znode, за которым он наблюдает, прежде чем увидит новые данные, соответствующие этому znode». Кроме того, «Поскольку часы — это одноразовые триггеры, и между получением события и отправкой нового запроса на получение часов существует задержка, вы не можете надежно увидеть каждое изменение, которое происходит с узлом в ZooKeeper».
Дело в том, что нет никакой гарантии, что вы получите уведомление о часах.
Это важно, потому что в такой системе, как Avout, вы пытаетесь имитировать Clojure Программная транзакционная память по сети с использованием Хранитель зоопарка. Это зависит от того, что для каждого изменения есть уведомление о часах.
Теперь я пытаюсь выяснить, является ли это недостатком кода или фундаментальной проблемой информатики (например, Теорема CAP).
Мой вопрос: Есть ли ошибка в системе Zookeeper Watches или это ограничение теоремы CAP?