If you are starting a new Samvera project, we strongly recommend you start with Hyrax.
At the top of our architecture diagram is “Samvera Applications.” Broadly, these are Ruby on Rails based applications that follow Samvera conventions. While it is possible to create your own Samvera application by assembling the right components, and this has been a common practice in the Samvera community in the past, ongoing maintenance of home grown solutions will be more expensive than sharing maintenance costs with the rest of the community. We are in the process of focusing our community development efforts on Hyrax, and that will be the code base we are best able to support and maintain.
We use Fedora 4 as our persistence layer. This is where the actual content and its associated metadata (or pointers to them) are stored. Interaction with Fedora happens via an HTTP API. Fedora 4 stores content as linked data.
We use Apache Solr for our search. Content from Fedora is indexed into solr via ActiveFedora, one of our middleware gems. Interaction with solr also happens via an HTTP API.
Hydra-Head is a Ruby-on-Rails gem containing the core code for a web application using the full stack of samvera building blocks.
Ruby on Rails usually follows the Active Record pattern to persist objects to a database. We instead use ActiveFedora to persist objects to Fedora.
We use a ruby gem called ldp to implement the LDP (Linked Data Platform) interaction patterns for interaction with Fedora 4.
You can read more about how we use LDP containers here.
Much of our search and display behavior is inherited from Blacklight. Many Samvera institutions also run Blacklight applications separately from Samvera, to provide search and discovery for their collections. The Blacklight Project also has many of its own plugins, such as Spotlight, for building virtual exhibits, and GeoBlacklight, which enhances Blacklight for use with geospatial data.
A gem to create derivatives for uploaded content. This might include, for example, generating thumbnails for large images, down-sampled audio and video for web steaming, or thumbnail snapshots of PDF documents.