These are chat archives for atomix/atomix
Anyway, lets talk atomix client consistency guarantees :) Let's take DistributedGroup for example. I create a new group and join it. Then network partition comes in and unfortunately, my client happens to be on the minority side of a partition (or maybe cannot event connect to any node). After some time partition recovers, but client's session timed out. Default recoveryStrategy for atomix client is set to RECOVERY (and cannot be overridden right now).
Now when client is able to connect to quorum again, it gets brand new session id. The problem is, it is not a member of distributed group anymore. I guess atomix client should guarantee this. It's more of a philosophical question. I'm deciding whether to submit pull request for atomix client or to handle it in my application.
Another problem is, that members of distributed group are cached. It does
sync() when resource opens, but then updates its state based on
onLeave events. So with new session ID it doesn't receive those on reconnect and doesn't do any "resync" either.
What do you think? Should be handled in atomix client or on "application side"? Thanks