Reprocess Message Processing Package Size by Processing Level
Overview
The Reprocess Message via Queueable Apex with Retry feature supports different processing levels:
- Interface
- Interface Group
- Integration
- Manual Reprocess
- Scheduler Reprocess
The difference is how the messages are selected:
- Manual Reprocess → The user manually selects the messages to reprocess.
- Scheduler Reprocess → The scheduler automatically queries eligible messages.
1. Interface Reprocess
When reprocessing is executed for a specific Interface, the system processes only the messages belonging to that Interface.
The processing uses the Processing Package Size configured on the Interface.
This applies to both:
- Manual Reprocess
- Interface Scheduler Reprocess
Example
Suppose:
Interface A
Processing Package Size = 1000
Flow:
Interface A
↓
Collect messages from Interface A
↓
Use Interface Processing Package Size = 1000
↓
Split and reprocess messages
2. Interface-Group Reprocess
When reprocessing is executed for an Interface Group, the system collects eligible messages from all Interfaces that belong to the Interface Group.
The collected messages are then processed according to the Processing Package Size configured on the Interface Group.
This behavior applies to both:
- Manual Reprocess
- Interface-Group Scheduler Reprocess
Example
Interface Group A
Processing Package Size = 600
Interface Group A contains:
Interface A
Interface B
Interface C
Suppose the messages are:
Interface A = 300 messages
Interface B = 400 messages
Interface C = 500 messages
The messages from all Interfaces in the group are collected:
300 + 400 + 500 = 1200 messages
The Interface Group Processing Package Size is:
600 messages
Therefore, the 1200 messages are processed as:
Package 1 = 600 messages
Package 2 = 600 messages
For example, the packages may contain:
Package 1
├─ Interface A = 300 messages
└─ Interface B = 300 messages
Total = 600 messages
Package 2
├─ Interface B = 100 messages
└─ Interface C = 500 messages
Total = 600 messages
Flow:
Interface A ── 300 messages ──┐
│
Interface B ── 400 messages ──┼──→ Collect
│
Interface C ── 500 messages ──┘
↓
Total = 1200 messages
↓
Interface Group Package Size = 600
↓
┌────────────────┴───────────────┐
↓ ↓
Package 1 Package 2
600 messages 600 messages
Important: At Interface-Group level, the messages from all Interfaces in the group are collected first. The Interface Group Processing Package Size is then applied to the collected messages.
3. Integration Reprocess
When reprocessing is executed at the Integration level, the system collects eligible messages across the Interfaces belonging to the Integration.
The processing uses the Transfer Package Size configured on the Integration.
This behavior applies to both:
- Manual Reprocess
- Integration Scheduler Reprocess
Example
Integration A
Transfer Package Size = 1000
The Integration contains:
Interface Group A
├─ Interface A
└─ Interface B
Interface Group B
├─ Interface C
└─ Interface D
Suppose the messages are:
Interface A = 300 messages
Interface B = 400 messages
Interface C = 500 messages
Interface D = 800 messages
The system collects all eligible messages:
300 + 400 + 500 + 800 = 2000 messages
The Integration Transfer Package Size is:
1000 messages
Therefore:
Package 1 = 1000 messages
Package 2 = 1000 messages
For example:
Package 1
├─ Interface A = 300 messages
├─ Interface B = 400 messages
└─ Interface C = 300 messages
Total = 1000 messages
Package 2
├─ Interface C = 200 messages
└─ Interface D = 800 messages
Total = 1000 messages
Flow:
Interface A ── 300 ──┐
Interface B ── 400 ──┤
Interface C ── 500 ──┼──→ Collect = 2000 messages
Interface D ── 800 ──┘
↓
Transfer Package Size = 1000
↓
┌────────────┴────────────┐
↓ ↓
Package 1 Package 2
1000 messages 1000 messages
4. Manual Reprocess vs. Scheduler Reprocess
The processing behavior is the same for Manual Reprocess and Scheduler Reprocess.
Manual Reprocess
User selects messages
↓
Processing Level
↓
Package Size
↓
Queueable Apex Processing
and:
Scheduler Reprocess
Scheduler queries messages
↓
Processing Level
↓
Package Size
↓
Queueable Apex Processing
The processing level determines which Package Size is used:
| Processing Level | Package Size |
|---|---|
| Interface | Processing Package Size from Interface |
| Interface Group | Processing Package Size from Interface Group |
| Integration | Transfer Package Size from Integration |
5. Reprocess Message with Queueable Apex Retry
After the messages are split according to the Package Size, they are submitted to Queueable Apex processing.
If a Queueable Apex job completes successfully, no retry is required.
Package
↓
Queueable Apex
↓
Processing Successful
↓
Complete
If the Queueable Apex job reaches an uncatchable Salesforce governor limit, the job fails.
With Queueable Apex Retry, SKYVVA requeues the failed work and reduces the processing chunk size.
Example:
1000 messages
↓
Queueable Apex
↓
Governor Limit
↓
FAILED
↓
Requeue Failed Work
↓
Reduce Chunk Size
↓
500
↓
Retry
If the smaller chunk also fails:
1000
↓ FAIL
500
↓ Retry / FAIL
250
↓ Retry
250 → 125 → ... → 1
The Queueable Apex Retry behavior is the same whether Reprocess Message was started by Manual Reprocess or Scheduler Reprocess.
Summary
Manual Reprocess and Scheduler Reprocess use the same processing and Queueable Apex Retry behavior.
The processing level determines the initial Package Size:
- Interface → Processing Package Size from Interface
- Interface Group → Processing Package Size from Interface Group
- Integration → Transfer Package Size from Integration
For Integration, messages across the Integration are collected and processed using the Integration Transfer Package Size.
If a Queueable Apex job reaches a Salesforce governor limit, Queueable Apex Retry requeues the failed work, reduces the chunk size, and retries it using a new Queueable Apex job.