Spring Batch Chunk vs Tasklet Interview Questions and Answers
Master Spring Batch Chunk vs Tasklet with interview questions covering chunk processing, tasklet processing, transaction boundaries, restartability, performance, use cases, and production best practices.
Introduction
Spring Batch provides two processing models:
- Chunk-Oriented Processing
- Tasklet-Based Processing
Choosing the correct model is one of the most common Spring Batch interview questions.
- Chunk Processing is designed for processing large datasets such as CSV files, databases, XML, and millions of records.
- Tasklet Processing is designed for single tasks that execute once per Step.
Understanding when to use each model is essential for building scalable enterprise batch applications.
Spring Batch Processing Models
flowchart LR
SpringBatch --> ChunkProcessing
SpringBatch --> TaskletProcessing
ChunkProcessing --> Reader
Reader --> Processor
Processor --> Writer
TaskletProcessing --> ExecuteTask
Q1. What is Chunk-Oriented Processing?
Answer
Chunk Processing reads, processes, and writes records in small batches (chunks).
Example
Read 1000
↓
Process 1000
↓
Write 1000
↓
Commit
Configuration
.chunk(1000,
transactionManager)
Advantages
- High Performance
- Restartable
- Fault Tolerant
- Memory Efficient
Q2. What is Tasklet Processing?
Tasklet processing executes one task once.
Interface
public class FileCleanupTasklet
implements Tasklet{
@Override
public RepeatStatus execute(
StepContribution contribution,
ChunkContext context){
return RepeatStatus.FINISHED;
}
}
Typical use cases
- Delete Files
- Backup Database
- Send Email
- Archive Files
- Execute Shell Script
Q3. How do Chunk and Tasklet differ?
| Chunk Processing | Tasklet Processing |
|---|---|
| Processes many records | Executes one task |
| Uses Reader-Processor-Writer | Single execute() method |
| Transaction per chunk | Usually one transaction |
| Restartable | Restartable |
| High throughput | Administrative tasks |
Q4. How does Chunk Processing work?
Architecture
flowchart TD
ItemReader --> Chunk1000
Chunk1000 --> ItemProcessor
ItemProcessor --> ItemWriter
ItemWriter --> Commit
Commit --> NextChunk
Each chunk has its own transaction boundary.
If one chunk fails,
previous committed chunks remain unchanged.
Q5. How does Tasklet Processing work?
Execution Flow
flowchart TD
Start --> ExecuteTasklet
ExecuteTasklet --> Finished
Example
public RepeatStatus execute(...){
Files.delete(path);
return RepeatStatus.FINISHED;
}
Tasklets are ideal for operations that are not item-oriented.
Q6. How do Transactions differ?
Chunk Transaction
1000 Records
↓
Write
↓
Commit
Tasklet Transaction
Execute Once
↓
Commit
Diagram
flowchart LR
Chunk --> Commit1
Commit1 --> Chunk2
Chunk2 --> Commit2
Tasklet --> SingleCommit
Chunk processing provides finer transaction control.
Q7. Which model performs better?
For large datasets,
Chunk Processing performs much better.
Reasons
- Batch writes
- Chunk commits
- Streaming readers
- Lower memory usage
Tasklets are better for
- One-time operations
- Maintenance tasks
- Administrative jobs
Q8. When should you use Chunk Processing?
Use Chunk Processing for
- CSV Import
- Excel Import
- Database Migration
- ETL
- Payment Processing
- Insurance Claims
- Banking Transactions
Banking Flow
flowchart TD
TransactionCSV --> Reader
Reader --> Processor
Processor --> Writer
Writer --> Database
Q9. When should you use Tasklets?
Use Tasklets for
- Cleanup
- Archiving
- Notifications
- File Transfer
- Database Backup
- Trigger External APIs
- Generate Reports
Example
flowchart TD
Start --> BackupDatabase
BackupDatabase --> CompressFiles
CompressFiles --> UploadFTP
UploadFTP --> Finish
Q10. Chunk vs Tasklet Best Practices
Prefer Chunk Processing
For any record-oriented workload.
Keep Tasklets Small
One responsibility per Tasklet.
Use Chunk for ETL
Never use Tasklets for millions of records.
Tune Chunk Size
Common values
- 100
- 500
- 1000
- 5000
Choose based on memory, database performance, and transaction requirements.
Banking Example
flowchart TD
NightlyJob --> CleanupTasklet
CleanupTasklet --> ImportStep
ImportStep --> FraudCheckStep
FraudCheckStep --> SettlementStep
SettlementStep --> ReportTasklet
Tasklets perform setup and cleanup, while chunk-oriented steps process transaction data.
Common Interview Questions
- What is Chunk Processing?
- What is Tasklet?
- Chunk vs Tasklet?
- Which is faster?
- When should you use Chunk Processing?
- When should you use Tasklets?
- How do transactions differ?
- How does restartability work?
- Which model is suitable for ETL?
- Best practices for Chunk and Tasklet?
Quick Revision
| Topic | Chunk Processing | Tasklet |
|---|---|---|
| Purpose | Process records | Execute one task |
| Components | Reader, Processor, Writer | Tasklet |
| Transactions | Per chunk | Usually one |
| Performance | Excellent | Good |
| Memory | Efficient | Depends on task |
| Restartability | Excellent | Supported |
| Best Use | ETL, Imports | Cleanup, Backup |
| Scalability | Very High | Moderate |
| Batch Writes | Yes | No |
| Millions of Records | Recommended | Not Recommended |
Chunk Processing Lifecycle
sequenceDiagram
Step->>ItemReader: Read Chunk
ItemReader-->>Step: 1000 Items
Step->>ItemProcessor: Process Items
ItemProcessor-->>Step: Processed Items
Step->>ItemWriter: Write Chunk
ItemWriter->>Database: Batch Insert
Database-->>ItemWriter: Success
ItemWriter->>TransactionManager: Commit
TransactionManager-->>Step: Continue
Production Example – Banking Batch Job
A bank processes 1 million daily transactions.
The batch job contains both processing models:
Tasklet Steps
- Delete yesterday's temporary files.
- Verify that the input CSV exists.
- Archive processed files.
- Send completion email.
Chunk Steps
- Read transactions from CSV.
- Validate each transaction.
- Detect fraud.
- Update account balances.
- Write audit records.
flowchart LR
CleanupTasklet --> VerifyInputTasklet
VerifyInputTasklet --> TransactionChunk
TransactionChunk --> FraudChunk
FraudChunk --> SettlementChunk
SettlementChunk --> ArchiveTasklet
ArchiveTasklet --> EmailTasklet
This hybrid design is common in enterprise batch systems because it combines efficient data processing with operational tasks.
Key Takeaways
- Spring Batch supports two processing models: Chunk-Oriented Processing and Tasklet Processing.
- Chunk Processing is designed for processing large collections of records using the ItemReader → ItemProcessor → ItemWriter pipeline.
- Tasklets execute a single unit of work using the
execute()method and are ideal for administrative or maintenance tasks. - Chunk processing provides better scalability through batch commits, streaming readers, and transaction boundaries per chunk.
- Tasklets are best suited for file cleanup, backups, notifications, report generation, and external script execution.
- Never use a Tasklet to process millions of records; use Chunk Processing instead.
- Many enterprise batch jobs combine both approaches, using Tasklets for setup and cleanup and Chunk Processing for the main business data.
- Choosing the right processing model improves performance, maintainability, and operational reliability.