When a ModeShape cluster encounters a network partition (where some parts of or components in the cluster become separated from the other parts), ModeShape should change its behavior accordingly changing its internal state from running to read-only and purging all caches. When the network partition is resolved, the repository nodes should become available again. This behavior is only possible if JGroups (which ModeShape uses for remote communication in a cluster) provides adequate and "timely" information about the network partitions.
The Repository should expose the current state (running" or "read-only"). Clients can thus check the current state and even be able to block until the state transitions to "available".
With these options, the repository is able to guarantee a behavior that prevents inconsistent data, yet the clients also have the ability to know immediately when such partitions occur and change their behavior.