In terms of Spring Batch to do the parallel steps is very easy:
Code:
<batch:job id="myJob">
<!-- Below defined steps will be run in parallel: -->
<batch:split id="jobSplit" task-executor="taskExecutor">
<batch:flow>
<batch:step id="stepA">
<batch:tasklet>
<batch:chunk reader="..." processor="..." writer="..." />
</batch:tasklet>
</batch:step>
</batch:flow>
<batch:flow>
<batch:step id="stepB">
<batch:tasklet>
<batch:chunk reader="..." processor="..." writer="..." />
</batch:tasklet>
</batch:step>
</batch:flow>
</batch:split>
</batch:job>
But how will you implement stepB? Will you poll the database periodically? I would suggest to use Message Queue to communicate between stepA and stepB – that would be more efficient.