...
The main goal of this document is to provide the benefits of moving the Authority API from the mod-inventory-storage module to the mod-entities-links.
...
NFR:
- Data consistency:
- Problem description: duplicated sources could cause inconsistency
- Maintainability
- Performance: improved import, improved linking flows
Baseline Architecture
Interactions between the mod-entities-links and mod-inventory-storage modules:
Event Consumption: The mod-entities-links module consumes events from the mod-inventory-storage module when authority records are updated or deleted. This ensures that the links stays stay synchronized with any changes happening in the inventory module.
Statistical Authority Data Storage: The mod-entities-links module stores statistical authority data by partially copying certain fields that are used for linking, link creating/updating, and automating linking. So module will maintain an almost full copy of the inventory database when most authorities are being linked.
Integration with mod-search: The mod-entities-links module makes calls to the mod-search module to retrieve authority data for suggesting links in the automate linking feature.
Target Architecture
...
1. Required
- Rename mod-entities-links to mod-authority-manager.
- Fully move Authority API, Authority Note Types API, and Authority Source Files API from mod-entities-links to mod-authority-manager. This API provides just CRUD operations and does not have any business logic.
- Move authority reindex API.
- Adjust mod-authority-manager to use an internal database instead of interacting with mod-inventory-storage and mod-search.
- Disable the above APIs in mod-inventory-storage and remove APIs implementation and enable it in mod-authority-manager. The dependent UI and BE modules will not experience any differences.
- Create a migration script for existing authorities.
Estimation
Point | Estimation |
---|---|
1.1 | 1 |
1.2 | 5 |
1.3 | 3 |
1.4 | 5 |
1.5 | 2 |
1.6 | 5 |
Total | 21 |
2. Optional/Future
- Consume data-import authority events to increase the performance of authority data-import flow. (8 SPs)
- Simplify authority stats generating
Benefits
Moving the Authority API from the mod-inventory-storage module to the mod-entities-links module can bring several benefits, particularly in terms of reducing dependencies, minimizing interactions, and eliminating duplication of authorities. Here are some arguments to support this movement:
...
Overall, moving the Authority API from the mod-inventory-storage module to the mod-entities-links module offers the advantages of reduced dependencies, minimized interactions, elimination of duplication, simplified development and maintenance, improved scalability, and enhanced data integrity. These benefits contribute to a more efficient, maintainable, and robust system architecture. @startuml mod_inventory_storage --> mod_entities_links: Authority record updates and deletions mod_entities_links --> mod_inventory_storage: Consumes authority events for synchronization mod_entities_links --> mod_search: Requests quests authority data for suggesting links @enduml