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 

...

Eventual consistency for duplicated data

Brief context: a source module owns an entity; a particular entity field is duplicated into 1+ entities of another module (e.g., for search, or filtering, or sorting). If an original field value in source module is changed, the change is to be replicated everywhere.

Identified cases:

  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

Outstanding questions

Status

Item

Details, comments, decisions

(plus)

Raman Auramau How many data (rows) can be affected?

Raman Auramau Assumption is up to dozens of thousand (e.g. changing of vendor or fund code can affect thousands+ orders

(warning)

Raman Auramau Are there any specific performance requirements (i.e. how fast data are to be synchronized)?


(warning)

Raman Auramau What is an expected behavior in case synchronization fails? Options - rollback, continue from the same record, retry (1..N times), report an error


(warning)Raman Auramau What is the allowable lag between changing a value in module-source and updating it in module-recipient?

Assumptions

N/A

Constraints

...