Page Properties | ||||||||
---|---|---|---|---|---|---|---|---|
|
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.
ARCH-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? )
...
- Pair of RefNumber and RefType should be in consistence state between POL and invoice line MODORDERS-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
- mod-orders → mod-invoice
- 1-to-1 relation - one pair of refNumber/refNumberType to one invoice record ( - not sure, need to confirm)
- VendorCode should be in consistence state between Organization record and purchaseOrder.vendorCodeMODORDERS-398 - Data consistency needed : Update "vendorCode" in related purchase orders BLOCKED
- mod-organizations → mod-orders
- 1-to-many relation - one vendor code can be used in many orders
- FundCode should be in consistence state between Fund record and pol.fundDistribution.code
- mod-finance → mod-orders
- 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
UICR-125 - Data corruption. When holding/item data are moved in Inventory, then the item in Courses is not updated accordinglyOPENMODORDERS-642 - Data corruption. When holding/item data are moved in Inventory, then the connected Order lines are not updated accordingly IN REFINEMENTUIREQ-589 - [BE] Data corruption. When holding/item data are moved in Inventory, then the connected Request is not updated accordingly OPENUIU-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: ARCH-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
...
- Raman shared current status and suggested plan; Thunderjet is ok to go ahead
- UIREC-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
...