Let's say that somewhere in between your points of synchronization someone deleted the row
(ID, Name) = (15, 'John')
After that he created the row
(ID, Name) = (15, 'Smith')
Do you need:
- Information that row with name 'John' has been deleted and now there is a new row with the name 'Smith'?
- Information that 'John' is now changed to 'Smith'?
If you need former, use CDC. If you need latter use replication. Or better, use Change Tracking (basically uses snapshot).
To sum it up, use CDC if you really need everything that has been changing over time. If you need only 'deltas', use change tracking.