You do have to be careful with restartability and synchronization of the input source. We recommend a "process indicator" pattern in the input data (or staging table as in the sample) - this is described in the reference guide (
http://static.springframework.org/sp....html#d0e5 73). and also in Wayne Lun'ds talk at TSE, which should be available on the website See the parallelJob sample for an example. N.B. The best idiom for this kind of thing will change with the m4 release, when we start providing chunk-oriented processing.
Also note that the thread pool model is not Spring Batch - we just use the TaskExecutor strategy from Spring Core (which see).