As it stands, when 2 users are editing a webform submission at the same time each user is overwriting the other's work and vise versa. The goal of this issue is to use an Optimistic Blocking strategy similar to the one used in Core to prevent users from overwriting each other's work.
Optimistic Locking is a strategy where you read a record, take note of a version number (other methods to do this involve dates, timestamps or checksums/hashes) and check that the version hasn't changed before you write the record back. When you write the record back you filter the update on the version to make sure it's atomic. (i.e. hasn't been updated between when you check the version and write the record to the disk) and update the version in one hit.
If the record is dirty (i.e. different version to yours) you abort the transaction and the user can re-start it.
This will be an optional setting, so if someone doesn't want the overhead of optimistic blocking they can disable it at will.
Comments
Comment #3
rymcveighComment #4
rymcveigh