[Spike] Investigate options for cross tenant harvesting
- MODOAIPMH-478Getting issue details... STATUS - [SPIKE]: SPIKE- investigate options for cross tenant harvesting
Role | Person | Comments |
---|---|---|
Solution Architect | ||
Java Lead | ||
UI Lead | ||
Product Owner |
Harvesting across tenants
This activity diagram represents the high-level overview of Orchestrator logic for harvesting.
Expected components:
Orchestrator - sequential harvesting across tenants from Consortia. This should be component of edge-oai-pmh - without changing existing API. Orchestrator should automatically determine if tenant is consortial or no and execute corresponding logic.
Orchestrator should control the following steps:
1) Extract tenantId from apiKey.
2) Make call to the ConsortiaTenant API (expected) to determine if tenant is consortial or no - this call should be cached to not save data in edge module and have possibility to not make a call each time when tenant info is needed.
3) If tenant is Consortial Tenant (not Central Tenant) - orchestrator should proxy request to mod-oai-pmh and return response with resumptionToken. This case harvesting should work as usually not taking into account that it is a sub-tenant of Central Tenant
4) If tenant is Central Tenant - orchestrator should start full harvesting for first tenant.
5) Orchestrator should verify tenants list at the end of first harvesting (resumptionToken is empty) and, if list still contains non-processed Consortial Tenant and last resumptionToken="", then it should start harvesting for new Consortial Tenant and return first response from second harvesting with non-empty resumptionToken of the first request of second harvesting.
6) In case tenant is Consortial Tenant (not Central Tenant) and resumptionToken is presented - orchestrator should prepare and make request for corresponding tenant. This case harvesting should work as usually not taking into account that it is a sub-tenant of Central Tenant.
7) Process termination criterion - all the Consortial Tenants from list are processed and resumptionToken of last harvesting is empty.
Resumption token mechanism - including information of tenant in the resumption token.
Terminology
Name | Explanation |
---|---|
Central Tenant | Consortia main Tenant that include Consortial TenantsĀ |
Consortial Tenant | Member of Consortia, i.e Sub-Tenant of Central Tenant |