SK SKYVVA Documentation

Reprocess Message Processing Package Size by Processing Level

Overview

The Reprocess Message via Queueable Apex with Retry feature supports different processing levels:

  1. Interface
  2. Interface Group
  3. Integration
Reprocess Message can be executed by: Both Manual Reprocess and Scheduler Reprocess follow the same processing-level and Package Size logic.

The difference is how the messages are selected:

After the messages are selected, the processing behavior is the same.

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:

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:

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:

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 LevelPackage Size
InterfaceProcessing Package Size from Interface
Interface GroupProcessing Package Size from Interface Group
IntegrationTransfer 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:

For Interface Group, messages from all Interfaces in the group are collected and processed using the Interface Group Package Size.

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.

Open this article in the interactive viewer →