From 1bd8e01f299db55d8e6e06030e994b7949ef5f69 Mon Sep 17 00:00:00 2001 From: Anna Headley Date: Wed, 29 Jan 2020 16:26:19 -0500 Subject: [PATCH] Add ADR for iiif indexing --- .../0002-synchronization-via-rabbitmq.md | 5 +++ .../0003-index-from-iiif-manifests.md | 33 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 architecture-decisions/0003-index-from-iiif-manifests.md diff --git a/architecture-decisions/0002-synchronization-via-rabbitmq.md b/architecture-decisions/0002-synchronization-via-rabbitmq.md index 334f2eb1..2b93894d 100644 --- a/architecture-decisions/0002-synchronization-via-rabbitmq.md +++ b/architecture-decisions/0002-synchronization-via-rabbitmq.md @@ -18,6 +18,11 @@ Figgy will send create/update/delete messages to a fanout RabbitMQ Exchange. Pomegranate will register a durable queue which listens to that exchange and process messages using [Sneakers](https://github.com/jondot/sneakers). +The message will contain the following information: + * Collection slugs the object is a member of + * Manifest URL of the object + * change event (create / update / delete) + ## Consequences * If Sneakers workers stop processing, then new documents don't make it in to diff --git a/architecture-decisions/0003-index-from-iiif-manifests.md b/architecture-decisions/0003-index-from-iiif-manifests.md new file mode 100644 index 00000000..14808ab5 --- /dev/null +++ b/architecture-decisions/0003-index-from-iiif-manifests.md @@ -0,0 +1,33 @@ +# 2. Indexing from IIIF Manifests + +Date: Archaeological + +## Status + +Accepted + +## Context + +Objects in Pomegranate need to get their metadata from Figgy, where they are +administered. Spotlight ships with a IIIF-based indexer. Figgy already produces +IIIF manifests to support viewing the objects. However the metadata bucket +doesn't contain rich enough metadata for pomegranate use cases. + +Figgy (plum, at the time) didn't have an API at the time this decision was made. Manifests were the +only way to get data out. Today Figgy has a graphql API. + +## Decision + +We will use the IIIF Manifests to pull data from Figgy into Pomegranate. The +Manifest gives us the manifest url (used for presenting a viewer), the thumbnail +iiif image url, and the jsonld metadata location (via seeAlso). + +## Consequences + +* We have to do multiple queries for each index action. + +* Efficiency of synchronization is bound to the efficiency of generating + manifests + +* Access authorization must be negotiated via headers, where an API might be more + straightforward.