Will this make getting job status expensive for a job with lots of children? We should optimize for the read case, I think, since clients will be polling status. Anticipated usage:

1. Spawn one or more jobs
2. Poll job status every 5-10 seconds
   * should be very lightweight
   * should scale well with large numbers of child jobs (no expensive calculations on read)