Technical documentation for ArchivesSpace

View the Project on GitHub archivesspace/tech-docs

ArchivesSpace architecture and components

ArchivesSpace is divided into several components: the backend, which exposes the major workflows and data types of the system via a REST API, a staff interface, a public interface, and a search system, consisting of Solr and an indexer application.

These components interact by exchanging JSON data. The format of this data is defined by a class called JSONModel.

Languages, platforms, and included open source projects

ArchivesSpace components are constructed using several programming languages, platforms, and additional open source projects.


The languages used are Java, JRuby, Ruby, JavaScript, and CSS.


The backend, OAI harvester, and indexer are Sinatra apps. The staff and public user interfaces are Ruby on Rails apps.

Additional open source projects

The database used out of the box and for testing is Apache Derby. The database suggested for production is MySQL. The index platform is Apache Solr.

Directory Structure

ArchivesSpace is made up of several components that are kept in separate directories.


This directory contains the code for the documentation tool used to generate the github io pages here: and


This directory contains the code that handles the database and the API.


This directory contains the code used to build the application. It includes the commands that are used to run the development servers, the test suites, and to build the releases. ArchivesSpace is a JRuby application and Apache Ant is used to build it.


This directory contains code that can be used when clustering an ArchivesSpace installation.


This directory contains code that is used across two or more of the components. It includes configuration options, database schemas and migrations, and translation files.


This directory contains the documentation and PDFs of the license agreement files.


This directory contains documentation files that are included in a release.


This directory contains the staff interface Ruby on Rails application.


This directory contains the indexer Sinatra application.


This directory contains an example that can be used to set up Apache JMeter to load test functional behavior and measure performance.


This directory contains the code that launches (starts, restarts, and stops) an ArchivesSpace application.


This directory contains the OAI-PMH Sinatra application.


This directory contains ArchivesSpace Program Team supported plugins.


This directory contains the Docker proxy code.


This directory contains the public interface Ruby on Rails application.


This directory contains the reports code.


This directory contains scripts necessary for building, deploying, and other ArchivesSpace tasks.


This directory contains the selenium tests.


This directory contains the solr code.


This directory contains XSL stylesheets used by ArchivesSpace.


This directory contains a tool that can be used to run the development servers.