If starting from scratch, always use Guid/unique identifier. Don't even bother with identity. Look into RowGuid and newsequentialid() to act as identity columns but in Guid format.

If one peer/server is to be the master of a given set of data, that is fine as an identity/int. This is typically DownloadOnly syncs.

If you're doing UploadOnly where multiple clients are sending to a master server table, unique identifier is your friend here. If you use identity you can have 5 clients all start with id 1 and be in a world of hurt. There are suggestions to increment the
seed with a prefix but you would have to give more room than you probably have to make sure clients don't conflict. If the data you're using to sync has a tendency to be dropped and readded, you're going to run out of room real quick.

One caveat mentioned is to not use timestamp at all as a primary or composite key as the _tracking tables already have one and use bigint for the rest. So far this seems to be the only real schema restriction.

Of course I'm still very green and I'm learning by fire working through some issues but I learned the hard way on picking the right column. I'm one of those people that chooses the path of least resistance and luckily I can choose #1 and never really have
to think about it again.