Page Properties | ||||||||
---|---|---|---|---|---|---|---|---|
|
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
...