Modularity in FOLIO: Principles, Techniques and Tools
DOI:
https://doi.org/10.23974/ijol.2021.vol6.2.208Abstract
From its earliest inception, FOLIO was conceived not as an ILS (Integrated Library System), but as a true Services Platform, composed of many independent but interdependent modules, and forming a foundation on which an ILS or other library software could be built out of relevant modules. This vision of modularity is crucial to FOLIO’s appeal to the library community, because it lowers the bar to participation: individual libraries may create modules that meet their needs, or hire developers to do so, or contribute to funding modules that will be of use to a broader community — all without needing “permission” from a central authority. The technical design of FOLIO is deeply influenced by the requirements of modularity, with the establishment of standard specifications and an emphasis on machine-readable API descriptions. While FOLIO’s modular design has proved advantageous, it also introduces difficulties, including cross-module searching and data consistency. Some conventions have been established to address these difficulties, and others are in the process of crystallizing. As the ILS built on FOLIO’s platform grows and matures, and as other application suites are built on it, it remains crucial to resist the shortcuts that monolithic systems can benefit from, and retain the vision of modularity that has so successfully brought FOLIO this far.
Downloads
References
Anonymous. 2020. About npm. https://docs.npmjs.com/about-npm accessed 2021-09-13.
Breeding, Marshall. 2015. Library Services Platforms: a maturing genre of products. Library Technology Reports 51(4):1–37. https://journals.ala.org/index.php/ltr/issue/download/509/259
Dickmeiss, Adam, David Crossley, Hongwei Ji, Julian Ladisch, Heikki Levanto, Craig McNally, Jakub Skoczen and Michael P. Taylor. 2016. Okapi Guide and Reference. https://github.com/folio-org/okapi/blob/master/doc/guide.md accessed 2021-08-24.
Facebook. 2018. GraphQL, June 2018 Edition. https://spec.graphql.org/June2018/ accessed 2021-08-27.
Fielding, Roy Thomas. 2000. Chapter 5: Representational State Transfer (REST). In: Architectural Styles and the Design of Network-based Software Architectures. Ph.D dissertation, University of California, Irvine.
FOLIO. 2021. Our community. https://www.folio.org/community/ accessed 2021-09-14.
Heidenreich, Christian, and 15 other contributors. 2016. RAML Version 1.0: RESTful API Modeling Language. https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/ accessed 2021-08-26.
Hunt, Pete. 2013. Why did we build React? https://reactjs.org/blog/2013/06/05/why-react.html accessed 2021-09-13.
Hutton, Ben, Austin Wright, Henry Andrews and Greg Dennis. 2020. JSON Schema: A Media Type for Describing JSON Documents, draft-bhutton-json-schema-00. https://json-schema.org/draft/2020-12/json-schema-core.html accessed 2021-08-26.
Miller, Darrel, and 32 other contributors. OpenAPI Specification, version 3.1.0. 2020. https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md accessed 2021-08-26.
Taylor, Michael P., Zak Burke, David Crossley, Mark Deutsch and Jason Skomorowski. 2017. The Stripes Module Developer's Guide. https://github.com/folio-org/stripes/blob/master/doc/dev-guide.md accessed 2021-08-24.
Downloads
Published
Versions
- 2022-01-05 (5)
- 2021-12-28 (4)
- 2021-12-23 (3)
- 2021-12-23 (2)
- 2021-12-22 (1)
Issue
Section
License
Copyright (c) 2021 International Journal of Librarianship

This work is licensed under a Creative Commons Attribution 4.0 International License.
Authors who publish with this journal agree to the following terms:Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and the initial publication in this journal.
Authors are able to enter into separate, additional contractual arrangements for the nonexclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).

