Prevent update conflicts (1 user and system trying to act on the same record)

Description

Problem statement
In FOLIO, most storage modules follow the "last writer wins" strategy for handling record updates. From the UI perspective this may lead to a situation when a stale record (older version of a give record) previously loaded into the UI may override a more recent version on the server. Hence relevant updates may get lost in the process and the user is not made aware of what has happened.

Proposed solution
From the storage and API perspective, optimistic locking is the proposed strategy to handle conflicts: (https://folio-org.atlassian.net/browse/UXPROD-1752#icft=UXPROD-1752). Handling of updates in FOLIO should rely on more explicit semantics, both in the storage (backend) APIs and the way it is communicated to the user through the UI.

Use cases
1 user and system trying to act on the same record, either individual records or batch

  • User A editing a user and system batch process is updating lots of users

  • 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 a budget and system applying a transaction to that budget at the same time

  • User A editing an instance/holdings/item after data import ran in Preview mode but before the data import changes were committed

  • User A editing a request while the request is being expired (request expiration date or hold shelf expiration date) - rare

Priority

Fix versions

None

Development Team

Core: Platform

Assignee

Solution Architect

Parent Field Value

None

Parent Status

None

Checklist

hide

TestRail: Results

Activity

Show:

Khalilah Gambrell June 14, 2021 at 8:27 PM

After talking with , I have decided to close this feature. https://folio-org.atlassian.net/browse/UXPROD-1752#icft=UXPROD-1752 will/have addressed the work to prevent conflicts. Each app/dev team will create a feature(s) to implement the work noted with https://folio-org.atlassian.net/browse/UXPROD-1752#icft=UXPROD-1752

https://folio-org.atlassian.net/browse/UXPROD-2994#icft=UXPROD-2994 outlines the work to implement optimistic locking (OL) for the Inventory app. It is the first app to implement OL and will serve as the pattern for dev teams to apply OL to their apps/systems.

Duplicate

Details

Reporter

Rank: FLO (MVP Sum 2020)

R2

Rank: 5Colleges (Full Jul 2021)

R1

Rank: Cornell (Full Sum 2021)

R1

Rank: GBV (MVP Sum 2020)

R1

Rank: Mainz (Full TBD)

R1

Rank: TAMU (MVP Jan 2021)

R1

Rank: Chicago (MVP Sum 2020)

R1

Rank: MO State (MVP June 2020)

R1

Rank: U of AL (MVP Oct 2020)

R1

Rank: Leipzig (Full TBD)

R1

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created November 2, 2020 at 8:31 AM
Updated April 27, 2022 at 9:29 AM
Resolved June 14, 2021 at 8:27 PM
TestRail: Cases
TestRail: Runs