IDigBio API Software

From iDigBio
Revision as of 22:29, 9 July 2018 by Mcollins (talk | contribs) (Created page with "== Technical Details of iDigBio APIs == This document describes the software and server systems used to serve the iDigBio APIs. Please refer to the main iDigBio API docum...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Technical Details of iDigBio APIs

This document describes the software and server systems used to serve the iDigBio APIs. Please refer to the main iDigBio API document for end-user information about the APIs.


Software

The core of our API services is Elasticsearch. This distributed document store is where we keep the current versions of all our specimen and media records. Both indexed fields and raw data are kept in this store. User queries expressed in the iDigBio query syntax are translated in to Elasticsearch queries and JSON results from Elasticsearch are then formatted and passed through to the user.

The API server is written in Node.js and is available under the GPL3 license from Github. Mapping requests including image tile generation are done with the Mapnik library.

Hardware

Elasticsearch is run on a dedicated hardware cluster. API server apps are deployed as Docker containers to a pool of virtual machines that run the API and other services. The virtual machines are run in a shared XenServer pool along with iDigBio's hosted VPS machines and other infrastructure. A Reddis virtual machine provides a short-lived cache of recent API request results to buffer repeated API requests, often the result of page reloads in the portal interface.