Versions Compared

Key

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

...

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:

  1. Data consistency:
    1. Problem description: duplicated sources could cause inconsistency
  2. Maintainability
  3. Performance: improved import, improved linking flows

Baseline Architecture

Interactions between the mod-entities-links and mod-inventory-storage modules:

  1. 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.

  2. 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.

  3. 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. 

Image AddedImage Removed

Target Architecture

...

Image Added

1. Required

  1. Rename mod-entities-links to mod-authority-manager.
  2. 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.
  3. Move authority reindex API.
  4. Adjust mod-authority-manager to use an internal database instead of interacting with mod-inventory-storage and mod-search.
  5. 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.
  6. Create a migration script for existing authorities.

Estimation

PointEstimation
1.11
1.2

5

1.33
1.45
1.52
1.65
Total21

2. Optional/Future

  1. Consume data-import authority events to increase the performance of authority data-import flow. (8 SPs)
  2. 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