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:

  1. Chunk-Oriented Processing
  2. 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.