Synchronisation/replication are such a common requirement I'm surprised there's not some well known checklists or patterns or best practices. e.g. merits of looking at times of changes vs keeping a log of changes, techniques to avoid and correct divergence over time, etc
"Because the concept is simple, achieving all three of the CAP properties at the same time is not possible."<p>I know that Paxos is considered hard to implement correct, but is there a reason to believe that in the general case, the more strict guarantees we need the more complex the algorithm has to be?