- Read item, remember the version number of the record (Vo)
- Validate if the update is allowed
- Update the record, and increment the version number (Vi)
- Replace the record in the data store only if the version in the data store is Vo
- If update fails, go to step 1