Tech Stack
Hosting
FOLIO is built for the cloud, and containerization is used extensively in the community environments as well as live production environments. PostgreSQL is typically the relational storage backend. Kafka and ElasticSearch technologies play a critical role in the operation of the system. Many hosting providers leverage AWS, but others, including many self-hosted deployments do not.
Front End
FOLIO’s front end consists of single page applications built with the Stripes toolkit, aiming to make it as easy as possible to write UI modules that communicate with RESTful Web services of FOLIO. Stripes consists of several separate JavaScript libraries that work together. In general, stripes-core is configured by a list of UI modules to include, and it uses a webpack plugin to pull them all into a bundle of HTML/CSS/JS resources. Each of those modules composes UI elements from stripes-components (and other sources as needed), and these use stripes-connect to search, view, edit and manage data maintained by the FOLIO web-services, logging information with stripes-logger as desired.
Back End
Back end modules are generally written as Java applications that expose their functionality through Okapi, FOLIO’s API gateway. Web service endpoints in Okapi can be, roughly, divided into two parts: general module and tenant management APIs, and endpoints for accessing module-provided, business-logic specific interfaces, e.g. Patron management or Circulation. Recently modules have been created using a Spring framework we refer to as Spring-Way.