I'm dubious about adopting a Core Data sync solution in which it is not clear how conflicts are resolved. Unfortunately, solutions like iCloud and Simperium just state 'conflicts are handled automatically', and left at that. Often this is not enough information.
To give a concrete example, imagine you have an app that includes entities A and B, with a one-to-one relationship between them. Imagine that the relationship is non-optional.
Beginning with the stores completely in sync and two related objects A_0 and B_0, device1 creates a new B object called B_1, and associates A_0 with B_1. It deletes B_0.
Simultaneously, device 2 also deletes B_0, but creates a new object called B_2 and relates that to A_0.
How will this situation be resolved? Presumably A_0 will end up related to B_1 or B_2, probably based on timestamp order, but what will happen to the orphaned object? Deleted? Does it rollback the whole transaction from one device?
The object cannot exist in isolation, because the relationship is required.