type Work { subject: Text } jobSubmit(subject: Text, key: Text) (id: Id) { pending = run(jobSend(subject, key)) id = wait(pending) pool = group(2) run(pool, jobStore(subject + "-group-one")) run(pool, jobStore(subject + "-group-two")) wait(pool) parallelEach(jobStore, [subject + "-parallel-one", subject + "-parallel-two"], 2) after = jobSend(subject + "-after", key + "-after") } transaction jobSend(subject: Text, key: Text) (id: Id) { id = dever.job.enqueue(job.perform, Work { subject = subject }, key) } transaction jobStore(subject: Text) () { saved = jobSend(subject, subject) } jobApply(input: Work) () { saved = seed(input.subject, "from-job") } jobCount() (total: Int) { total = model.count() }