Google uses an OT (
Operational Transformation) based framework to support Google apps and Google Drive and this allows them simultaneous edits by many users of a single document. While instantaneous result may momentarily differ between clients, the document views as seen by all clients converge over time into a single stable view, often with seconds or minutes. The way they have implemented it, they allow each user to undo their independent edit stream and at the same time view and/or revert to earlier states of the combined document.
OT is very powerful, but is based on a complex theoretical framework using transaction transformations.
Apple has replicated some functionality for some of their applications by special casing the apps as to sidestep the trickier issues, but iCloud does not appear to have the theoretical underpinnings to solve the general case for all users. (Such a goal might sound lofty, but if you have enough users, every rare edge-case becomes commonplace.)
I suspect Apple wandered down an object oriented path thinking they could fix problems as they went along, but as far as I know, there is no simple object based equivalent to OT (or the related theories). Yes, you can build OT on top of an object model, but it just means you implement a non-object model using objects. This is neither easy nor efficient — but may be the only way to make iCloud work today.
I don't expect any future version of iCloud to provide a robust solution, and I have recommended that companies like Bare Bones implement an abstract model of synchronization that can then be hosted on anything from a simple file system — such as Dropbox or a Network Storage System — up to more advanced models such as iCloud and Google Drive.
This is not too hard to do for a straight forward store such as Yojimbo where you can avoid the more complex issues. This abstract layer should focus on simplicity, robustness, and state recovery when the underlying media is corrupted. This is quite doable.
This would avoid wasting effort and opportunity on iCloud while still being able to use what is there, and what works. It would also protect Bare Bones when Apple inevitably re-structures iCloud to yet again attempt to address the problem. (This is always the way Apple solves these problems. I worked in Apple engineering for many years so I have experienced it many times.)
--j
PS I have been working on these kind of problems since the mid 1980's, so I know how nasty a problem Bare Bones have. I just wish they would try for a solution that does not tie their fate to the details of Apple's internal synchronization model (should it some day even work).