Work in Progress
Asynchronous REST API
The Fedora 4 REST API should expose a mechanism for clients to request asynchronous content. The mechanism involves a system like http://www.adayinthelifeof.nl/2011/06/02/asynchronous-operations-in-rest/. When the content is prepared, the client has some window of time (24h?) to retrieve it from the resulting URL before it expires. This could be implemented as an extension of the FedoraContent endpoint, or at its own JAX-RS endpoint.
POST /path/to/fcr:content/fcr:async <- HTTP/1.1 202 Accepted <- Location: /fcr:queue/621252 GET /fcr:queue/621252 <- HTTP/1.1 200 OK GET /fcr:queue/621252 <- HTTP/1.1 303 See Other <- Location: /path/to/fcr:content
Asynchronous storage API
Fedora 4 delegates much of its storage concerns to Modeshape. Randall Hauch, a Modeshape developer, has written up some ideas about implementing a GlacierBinaryStore on the Modeshape forums. We believe the ideas he suggest are in line with the expectations we have about asynchronous stores. This is probably a monumental task, but maybe it can be broken down more with e.g. a Glacier Sequencer