On Fri, Jan 13, 2017 at 12:20 AM, lancedolan <[email protected]> wrote: > In an architecture with > only one Mongo instance, the moment one instance writes to the JCR, another > instance will read the same data and agree consistently. It seems to me that > the JCR state is strongly consistent.
No. DocumentNodeStore in each Sling node which are part of cluster would periodically poll the backend root node state revision. If there is any change detected it would update its head revision to match with last seen root node revision from Mongo and then it would generate an external observation event. So any change done on cluster node N1 would be _visible sometime later_ on cluster node N2. So if you create a node on N1 and immediately try to read it on N2 then that read would fail as that change might not be "visible" on other cluster node. So any new session opened on N2 would have its base revision set to current head revision of that cluster node and which may be older than current head revision in Mongo. However the writes would still be consistent. So if you modify same property concurrently from different cluster nodes that one of the write would succeed and other would fail with a conflict. Some details are provided at [1] Chetan Mehrotra [1] https://jackrabbit.apache.org/oak/docs/architecture/transactional-model.html
