There are two ways we can go:
a) a two-step process where we ask ahead of time for checksums to be computed. A background task goes through and calculates these, and stores them in a temporary table that has a timeout.
b) enable longer-running connections between librarians, using websockets.