Versions Compared

Key

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


Page Properties


Submitted Date

  

Approved Date

 

Status

SUPERSEDED by ADR-xxx

ImpactMEDIUM


 

Overrides/Supersedes 

...

N/A

Constraints

N/A

Rationale

Analysis and options

Basically, 2 main alternatives can be suggested for the provided context:

...

It worth also noting that UICR-125 - Data corruption. When holding/item data are moved in Inventory, then the item in Courses is not updated accordingly OPENcase is slightly different and is about dangling references while not deletion but moving of a core-module record; neither cascade nor soft deletion is applicable here. At the same time, this case and cascade deletion case have one great similarity - in both, non-core-modules are to be notified about a change in core-module. In this context, a robust notification channel with guaranteed delivery to transfer change events from one module (say, module-source) to another module (say, module-recipient) is required.  More details are on Data consistency and message driven approach # Notification channel.

Soft deletion option

More details regarding this option.

...

  • Pros
    • N/A
  • Cons
    • N/A


Other Related Resources

Notes
  • It may be possible to mitigate this in the UI by using the "handler" app-type to function as an event bus (since the UI bundle is deployed as a monolith, events published in one module could, potentially, be acted upon by another) but we don't actually have anything like this in production yet. We do have handler-modules, but don't have an established protocol for apps to issue their own events. 
JIRAs
  • UITEN-128 - Permissions Architecture: Courses error when trying to delete location in BugFest CLOSED
  • UITEN-74 - Refuse to delete a location if it's in use by a course-listing or a course-reserve CLOSED
  • UITEN-75 - Refuse to delete a service-point if it's in use by a course-listing CLOSED
  • UICR-125 - Data corruption. When holding/item data are moved in Inventory, then the item in Courses is not updated accordingly OPEN

...