Chooser

Chooser

Legacy

Area resolution
Language Python
Description Display page for multiple-resolution and co-access
Production URLs
Production Heartbeats
Documentation [http://gitlab.com/crossref/chooser]
Quality Sentry, no SONAR
Source Code
Products

“Chooser” is a FastAPI application written in Python that performs the following functions:

  • Presents options, with clearbit logos, for multiple resolution items
  • Presents options, with clearbit logos, for co-access items

The HANDLE system determines whether an item should be routed to internal systems, as per the “redirect sequence”, below.

Redirect Sequence

How does HANDLE know to redirect MR/Co-access requests to the internal Crossref system? Because the CS system intercepts deposits that are multiple resolution or coaccess and points them to iPage at the time of deposit.

Incoming DOI/HANDLE request points the DOI to http://www.crossref.org/iPage?doi=10.XXXX which in turn rewrites to Chooser with the DC HAProxy redirecting these iPage requests to Chooser. Requests to coaccess (apps.crossref.org/coaccess) or multiple resolution (doi.crossref.org/iPage / mr.crossref.org / *.crossref.org/iPage) get redirected to Chooser.

Data Sources

The Chooser interface makes calls to two separate data sources:

  • The REST API to gather metadata about the current item;
  • and the Clearbit service to gather logos for off-site links

Error Handling

Chooser uses Sentry for debugging and error handling. Until May 2024 the most frequent cause of failure was a timeout on Clearbit logo resolution. Now the most frequent error is a retry error that occurs in sync with failures of the REST API.