The harvest solution consists of 3 parts:
The finished JSON-representation of each resource is then picked up by both the backend for the search page, fdk-search-service, and the backend for the details page, fdk-resource-service. Changes in the resources are available in data.norge when these two services have been updated.
The harvest process can be initiated by two services:
The communication between the relevant services is handled by a combination of RabbitMQ and Apache Kafka. The harvests are triggered by messages published in RabbitMQ, and the harvesters will publish harvest reports for each source in RabbitMQ when they are done. These reports contain information about each resource with changes and each resource that has been removed from the source since the last harvest. These reports are picked up by different versions of fdk-kafka-event-publisher, and will produce events in Kafka for each changed resource. Reasoning consumes events about changed resources and produces new events with the enriched graphs. Parsing consumes events about reasoned resources and produces new events with a JSON version of the resource. The events about parsed resources are consumed by fdk-search-service and fdk-resource-service and the harvest process is finished.
Parts of FDK not strictly part of the harvest process that are also dependent of the kafka events produced by the process:
DATASET_HARVESTED
to produce an assessment of the harvested datasets