Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Page Properties


Submitted Date

  

Approved Date


Status

DRAFT

ImpactMEDIUM


 

Overrides/Supersedes 

This decision was migrated from the Tech Leads Decision Log as part of a consolidation process.  The original decision record can be found here.

RFC 

N/A

Stakeholders

  • Front-end and back-end devs who meet issues with data consistenc

...

  • Implementing business transactions that span multiple services is not straightforward,
  • Implementing queries that join data that is now in multiple databases is challenging.

Image ModifiedARCH-5 - Spike : Data consistency approach for Folio OPEN

Basing on currently known Folio issues with Data consistency one can see that FOLIO has difficulties caused by both mentioned shortcomings. Those difficulties can be divided into the following groups:

  • PRIORITY 1 eventual consistency for redundant / duplicated data when some data is duplicated in 2 storages and is to be synchronized,
  • PRIORITY 2 consistency for dangling / lost references when an item is deleted from one module leaving lost references to it in other modules, a problem that is succinctly, if frustratingly, captured in the PR discussion related to UITEN-128.
  • PRIORITY 3 data consistency during distributed business operations when data in several separate storages is to be modified (mod-finance-storage, mod-invoice-storage, mod-orders-storage),
  • updates collisions ... (check with Jacub? )

...

  1. Pair of RefNumber and RefType should be in consistence state between POL and invoice line Image ModifiedMODORDERS-421 - Spike : User should be able to edit Pair of "refNumber" and "refNumberType" in the POL and see that update on the Invoice line OPEN
    1. mod-orders → mod-invoice
    2. 1-to-1 relation - one pair of refNumber/refNumberType to one invoice record ( (question) - not sure, need to confirm)
  2. VendorCode should be in consistence state between Organization record and purchaseOrder.vendorCodeImage ModifiedMODORDERS-398 - Data consistency needed : Update "vendorCode" in related purchase orders BLOCKED
    1. mod-organizations → mod-orders
    2. 1-to-many relation - one vendor code can be used in many orders
  3. FundCode should be in consistence state between Fund record and pol.fundDistribution.code
    1. mod-finance → mod-orders
    2. 1-to-many relation - one fund code can be used in many orders

...

Consistency for Dangling References

Deletion of core-module records may leave dangling references from non-core modules

Image ModifiedUICR-125 - Data corruption. When holding/item data are moved in Inventory, then the item in Courses is not updated accordinglyOPENImage ModifiedMODORDERS-642 - Data corruption. When holding/item data are moved in Inventory, then the connected Order lines are not updated accordingly IN REFINEMENTImage ModifiedUIREQ-589 - [BE] Data corruption. When holding/item data are moved in Inventory, then the connected Request is not updated accordingly OPENImage ModifiedUIU-2082 - [BE] Data corruption. When holdings/item data are moved in Inventory, then the connected Fee/Fine is not updated accordingly CLOSED

...

Consistency for Distributed Business Operations

Jira tickets: Image ModifiedARCH-5 - Spike : Data consistency approach for Folio OPEN

...

On distributed updates and eventual consistency

2021-05-12 Meeting notes - there was a lot of discussion on related issues

...

  • (plus) Raman shared current status and suggested plan; Thunderjet is ok to go ahead
  • Image ModifiedUIREC-135 - Update create, edit and receive piece forms with additional fields CLOSED - this is a top priority issue with data consistency for duplicated data which is necessary for current Thunderjet feature completion; agree to start with this issue
  • Raman to work with Andrei Makaranka on details

...