Purpose: Implementing Optimistic Locking in Inventory.
Implementation of Optimistic Locking FOLIO wide was ranked very high by the libraries. The implementation in Inventory will be the first stab doing so.
Usecases: (Use cases collected by the community)
Not frequent: 2 users editing the same record at the same time
- User A and User B editing the same record at the same time – instances, holdings, items, requests
- User A editing an item and User B creating a request for that item
- User A editing and item and User B putting that item on course reserve at the same time
- User A editing an item and User B deleting the item before User A's edits are saved (see UIIN-730)
- When attempting to update holdings and their items concurrently the holdings updates will ever so often interfere with the item updates, effectively nullifying the latter (see
MODINVSTOR-516). This particular item is being addressed via RMB-388.
- User A and User B generating a new number using the number generator for call number or accession number (number generator runs separate queries for selecting and incrementing the number (GBV); not relevant if FOLIO combines select and increment into one query) (not a challenge in FOLIO because the functionality does not exist)
More frequent: 1 user and system trying to act on the same record, either individual records or batch
- User A editing an instance/holding/item and data import updating the same record (consider the DI redesign that is taking place now)
- User A editing an item and checkout trying to update the item status
- User A editing an item and bulk renewal trying to update the item
- User A editing an instance/holdings/item after data import ran in Preview mode but before the data import changes were committed
Two automated processes acting on the same record
- Checkout happening and updating status on an item record at the same time as import updating the item