P2P sample code for .NET Core

The details of what will become the “default conflict resolver” (and as of right now the only conflict resolver for replication, both peer to peer and otherwise) are as follows:

  1. Deletions always win
  2. If neither side of the conflict is a deletion, then the side with a longer edit history wins (i.e. how many times it was resaved into the database past the common ancestor)
  3. If the edit history is the same length then an arbitrary winner is chosen based on some internal information (this probably will not satisfy you, so sorry about that!). The information used is immutable and deterministic so regardless of where the resolution takes place it will always be the same on any device.