[FOLIO-3556] DRAFT: Linking MARC bib fields to MARC authority Created: 10/Aug/22  Updated: 25/Aug/22  Resolved: 25/Aug/22

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: Story Priority: TBD
Reporter: Mikhail Fokanov Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: back-end
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Sprint:
Development Team: Spitfire
RCA Group: TBD

 Description   

Purpose/Overview:
Catalogers want the ability to link a MARC bib field(s) to MARC authority heading(s)/reference(s) because authority records are seen as the source of truth about a person/place/corporation/conference/subject/genre. This linking allows the library user to learn more and feel 100% confident that the information provided is accurate and allows them to search/browse for their research.

Requirements/Scope:

  1. Module mod-links should be created
  2. Requirement

Approach:- DRAFT
The new module should be created for handling links between Instances fields and authorities. The module should contain the following database (postgres) table.

id  authority_id (btree index) instance_id (btree index) bib_record_tag bib_record_field_id
For the last column, the $0 sub-field should contain the value which is generated based on Managing Authority source files.

API
POST /link - Should create row in the table (see above).
Messaging

Listen for inventory.authority domain event. If the message is received the there is such authority in link table then the record in the following table is created: id, authority_data completed, next_record_id

Then mod-links iterates over all records in links table, that has by batches of 500 and every time update the next_record_id field with the latest id in the batch. And the next batch takes the records from links table, that has id > job_table. next_record_id.

NextRecordId is also saved in memory. Saving in database is done for ensuring the consistency in case if module fails during the processing of batch. On @PostConstract of the module it should read the job_table and if there is job with completed equals to "false" it should start processing of this job starting from next_record_id. It could cause double processing of the job if another instance is up during the job processing, but it is not a problem, as the process is idempotent. 

Mod-links send Kafka message to update SRS records to update the corresponding bib records. The similar mechanism in SRS could be leveraged that was implemented for propagation of mod-inventory instance_id to SRS. Mod-links should request SRS for the mapping between authority inventory fields and source authority record fields only once for the batch.
When SRS updates the record, the change is automatically propagated to mod-inventory-storage and mod-seach (as it is right now).



 Comments   
Comment by Pavlo Smahin [ 22/Aug/22 ]

This is a placeholder for all linking feature stories.

Generated at Thu Feb 08 23:29:00 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.