To add new job types, just add new procedures. The danger is that a wrong kind of message in the job jar, or an uninitialized procedure pointer, will crash the program. A call is executed on one computer, but the substantive part of the procedure is executed on a different computer. The remote procedure calls can be synchronous or asynchronous. The remote part of the procedure completes before the call returns.
Procedures fetch and fetchCopy are synchronous.
Asynchronous calls can create parallelism, but they are more difficult to use since the caller cannot assume the operation is finished. Procedure storeAt is asynchronous. The caller can check for the arrival of the result or wait for it. Remote procedures are not usually written as scripts, but rather as conventional procedures taking a variety of arguments.