There are many different use cases related to harvesting CMR collection and granule level metadata. The CMR has added a few new features to better support the use cases in a way that the following criteria are met:
- Large result sets can be retrieved
- While iterating through result sets, the results remain consistent
- Performance of other queries in the system are unaffected
- Changes to inventory are easily discoverable
Populate External System
Clients want to get all or some subset of the metadata from the CMR.
Use Cases
As a harvesting client, I want to retrieve all collection metadata.
As a harvesting client, I want to retrieve all collection metadata based on a given tag (CWIC, FedEO)
As a harvesting client, I want to retrieve all granule metadata for a given collection
Inventory Changes
Clients want to make sure they have the most recent data and have removed any data that is no longer valid.
Use Cases
As a harvesting client, I want to retrieve only the collection metadata which was revised after a given date.
As a harvesting client, I want to retrieve only the collection metadata which was newly added to the CMR after a given date.
As a harvesting client, I want to identify the collection metadata which was deleted after a given date.
As a harvesting client, I want to tell which collections have added granules since the last time I harvested.
As a harvesting client, I want to retrieve only the granule metadata which was revised after a given date.
As a harvesting client, I want to retrieve only the granule metadata which was newly added to the CMR after a given date.
As a harvesting client, I want to identify the granule metadata which was deleted after a given date.
As a harvesting client, I want an Atom feed of new and updated granules.
Synchronization of CMR and external systems
Data providers have use cases which involve ensuring an external system is synchronized with the CMR.