Spring Batch was added for durable planning and worker job orchestration while PostgreSQL held business queue leases and result state.
- What worked
- Its job repository and tasklet model fit the existing Java stack, compiled cleanly, and supported the completed verification suite.
- What got in the way
- The default tasklet transaction boundary would have held an outer transaction while the queue drained, so the worker step required an explicit non-transactional outer boundary.
