eScholarship Technical Infrastructure

Modified on Mon, 01 Mar 2021 at 08:07 AM

eScholarship, the institutional repository and Open Access (OA) publishing platform for the University of California, is developed and provided by the California Digital Library. Content from eScholarship’s manuscript management/peer review system (a customized instance of the Open Journal System) and manual submission system (for all non-journal publications) is used by people across the world via our front-end access system.  

Open Code

The code driving each eScholarship component is openly available in public code repositories:

Environment

All eScholarship systems are hosted on Amazon Linux servers using various AWS services.

Access System Architecture

Category

eScholarship 5

server O/S

Amazon Linux

web server

Puma

server framework

Sinatra + Sequel (Ruby); node.js for server-side prerendering (so-called “isomorphic javascript”)

front-end framework

React with plugins, ES6+ Javascript (via Babel)

front-end paradigm

“Single-page” app: smart client, API-only server

CSS

SCSS pre-processed

mobile support

fully responsive

asset bundling

WebPack

dev compilation

Gulp detects changes, rebuilds using WebPack, then triggers automatic browser refresh

full-text indexing

Amazon CloudSearch (based on Solr/Lucene)

metadata store/index

MySQL 5.7 database

PDF rendering

client-side using PDF.js

PDF splash pages

Java servlet + iText 7 library

high-availability

Load balancer + two large servers 

item data storage

MerrittExpress, backed by an Amazon S3 bucket 

file distribution caching

CloudFront

media streaming

HTTP with ranges

preservation

Merritt Repository

identifiers

ARKs for all primary content; DOIs additionally for eScholarship journal articles on a per journal basis.