Hi Michael,
We have a two-part process for assembling our manifests. The first is that we wrote an "indexer" that nightly crawls our data (stored in METS files) and indexes their contents into Solr. The second is that we have a relatively simple "Manifest Server" that generates the manifests on-the-fly (i.e., on request) from the Solr indexes. The same indexes are used for both v2 and v3 manifests.
For generating the metadata and TOCs our digital curators add that to the METS files at the point of accessioning the item into our systems. That is a time-consuming process, but it means that it only has to be done once. We are looking now at integrating the data from our TEI Catalogues [1] to help streamline this process.
Generating the manifests on request means that if we find any bugs or want to make enhancements to our manifests we can do it with a simple code change, rather than needing to re-generate our manifests and store them.
I would be happy to share more information or code with you, if you want a bit more of a peek behind the curtain.
Cheers,
-Andrew
[1] As a side note, if you're interested we're publishing our catalogues as open data on GitHub. For example, the data that drives our Western Medieval catalogue (
https://medieval.bodleian.ox.ac.uk) can be found here:
https://github.com/bodleian/medieval-mss. At present we are publishing data on GitHub for nine of our catalogues: Western Medieval, Fihrist (Union Catalogue of UK Islamic MSS), Hebrew, Cairo Genizah, Armenian, Georgian, Tibetan, Senmai, and South Asian.