Skip to content

Commit f080a20

Browse files
committed
Incorporate initial feedback from Jeremy
1 parent f223828 commit f080a20

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

docs/architecture-decisions/0003-surface-primo-cdi-records-in-results.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,18 @@ Accepted
99
## Context
1010

1111
The Libraries' unified search strategy calls for a discovery interface that surfaces results from
12-
both Primo Central Discovery Index (CDI) and Alma (via TIMDEX), replacing the current [Bento UI](https://github.com/MITLibraries/bento).
12+
both Ex Libris Central Discovery Index (CDI) and Alma (via TIMDEX), replacing the current
13+
[Bento UI](https://github.com/MITLibraries/bento).
1314
In Bento, Alma and CDI results are displayed in separate boxes. The unified interface would
14-
interleave CDI and TIMDEX records in the same results list.
15+
interleave CDI and TIMDEX records in the same results list, providing affordances (likely tabs)
16+
to display CDI or TIMDEX results separately.
1517

1618
## Options considered
1719

1820
### Harvest Primo CDI data
1921

2022
We considered adding a new Primo harvester to our ETL architecture to ingest CDI data into TIMDEX
21-
API. This would allow us to normalize CDI records as we do with other TIMDEX sources. Querying a
22-
single API for Alma and CDI records would facilitate a single-stream view as desired in the unified
23-
UI. Interleaving would no longer be necessary, as all records would be stored in OpenSearch.
24-
25-
The harvester model would value beyond the scope of the TIMDEX UI redesign. By storing CDI records
26-
in TIMDEX API, we could facilitate computational access to a massive corpus of data.
27-
28-
Unfortunately, this approach is not feasible for many reasons:
23+
API. This approach is not feasible for many reasons:
2924

3025
- **Cost**: CDI contains over 5 billion records. Harvesting and storing these records would be impractical and expensive, both in terms of financial and compute resources.
3126
- **Performance**: Expanding TIMDEX API at such a scale is likely to dramatically reduce the efficiency of our OpenSearch index.
@@ -38,7 +33,8 @@ This option would essentially be a different take on the Bento design. On the re
3833
could tab between Alma results (labeled 'Books', 'MIT Catalog', etc.) and CDI results ('Articles').
3934

4035
While arguably an improvement on Bento, this design does not deliver the combined Alma/CDI results
41-
view as envisioned in the unified UI.
36+
view as envisioned in the unified UI. A superior design would include an 'Everything' tab as the
37+
default, with TIMDEX and CDI tabs for users that want to refine further.
4238

4339
### Implement external search orchestrator
4440

@@ -54,10 +50,13 @@ records into TIMDEX API.
5450

5551
## Decision
5652

57-
This approach aligns with the unified search strategy's goal to display all known results from
58-
CDI and TIMDEX in the same interface. It also enables us to add the desired intelligent user
59-
guidance, because we can render search interventions from TACOS and other external systems as
60-
needed.
53+
We will implement an external search orchestrator that interleaves results from CDI and TIMDEX.
54+
This combined results list will become the default display in TIMDEX UI. The UI will also provide
55+
the option to display results from a single source.
56+
57+
This approach aligns with the unified search strategy's goal to display all known results from CDI
58+
and TIMDEX in the same interface. It also enables us to add the desired intelligent user guidance,
59+
because we can render search interventions from TACOS and other external systems as needed.
6160

6261
### Proposed architecture
6362

@@ -127,7 +126,7 @@ tack on the normalization component as a Python microservice.
127126

128127
### Cons
129128

130-
- Requires runtime integration with Primo Search API, which may introduce latency or complexity. (We can mitigate this by implementing a caching strategy similar to that in Bento.)
129+
- Requires runtime integration with Primo Search API, which will introduce latency and complexity. (We can mitigate this by implementing a caching strategy similar to that in Bento.)
131130
- Limits computational access to CDI records (no bulk access via TIMDEX). While not a TIMDEX UI concern, this is worthy of consideration in the broader context of the TIMDEX ecosystem.
132131
- Mixed-source results may confuse end users.
133132

@@ -140,7 +139,8 @@ separate tabs for TIMDEX and Primo records.
140139
Relevance normalization is a critical issue. We can begin with rank-based interleaving, but we
141140
should not assume this to be a long-term solution.
142141

143-
We should connect with the MIT research community to determine whether computational access to CDI
144-
would be useful. If there is a need, we could consider harvesting a subset of CDI records relevant
145-
to the use case. This would be a significant undertaking beyond the scope of the unified search
146-
interface, but it aligns with the Libraries' mission, vision, and goals.
142+
We should connect with the MIT research community to determine their needs regarding computational
143+
access to library data. While we cannot harvest CDI data for the aforementioned reasons, there may
144+
be an alternative to CDI that could better support our users. Conducting this research would be a
145+
significant undertaking beyond the scope of the unified search interface, but it aligns with the
146+
Libraries' mission, vision, and goals.

0 commit comments

Comments
 (0)