A protocol for replicating replicas in a sync community. Each replica
maintains a knowledge that represents changes that the replica is aware
of. Each replica does not typically maintain knowledge about other
replicas. The protocol includes messages that include knowledge about
changes on the various replicas. Using the knowledge, the replicas can
enumerate changes and send the changes using asynchronous messages that
do not need to be received in any particular order. The protocol enables
filters to ensure that a valid replication is possible using a minimum
knowledge argument. The protocol also enables replicas to partially
replicate using filtered knowledge.