Optimistic locking allows an update only when the supplied item version matches the current database version. The update then advances the version. section 16.3.2
DynamoDB provides the conditional-update features, but application code must implement the technique. A failed version check prevents a stale writer from overwriting newer data. section 16.3.2
Two processes update one item
An item starts at version 0. Processes A and B both read version 0. A updates successfully, and the item becomes version 1. B's update specifying version 0 is rejected; B must reread version 1 and retry its change. section 16.3.2
Use conditional expressions to require the expected version during updates. Under heavy parallel modification, repeated retries can create substantial overhead. section 16.3.2

