Yes - ReStore uses a form of optimistic locking to control
multi-user access to data. When you make a change to an object, ReStore is able to
track whether that object has also been changed by another user. If this has
happened, ReStore will prevent you from inadvertently overwriting
conflicting changes when you commit your transaction. You may then use a number of methods to resolve the
differences:
"Return those changed objects which have also
been modified in the database"
aReStore transactionCommitFailures
"Return a copy of aChangedObject reflecting the
latest modifications in the database"
aChangedObject currentVersion
"Forget your changes and refresh objects with
modifications in the database"
aReStore rollbackAndRefreshTransaction
"Merge modifications in the database with your
changes"
aReStore refreshAndRollforwardTransaction
Additionally, particularly volatile objects can define their own
conflict-resolution strategy, increasing the chances that your transactions will
commit successfully.