- Translate Request params to a valid request for index (solr) & use index client library (rsolr) to query the index
- Log search history (per user/session)
- Keep track of configured query types (ie. search by title), sorting options and how to apply them
- Decide which serialization to return
- Keep track of mappings between (solr documents) and supported serializations, perform those mappings when requested