I have a flow that uses a batch process to synchronize data into two target systems after receiving data from a source.
The batch contains two steps, and each step is encapsulated inside a try scope to catch failed records and store them in an Object Store.
Step 1 has two HTTP requests: one GET and one PUT. (Avg time per request 350ms)
Step 2 has three HTTP requests: two GETs and one PUT. (Avg time per request 400ms)
The On Complete phase retrieves the failed records from the Object Store to send a notification email with a summary of the flow, and then deletes the Object Store.
The batch process is configured with:
Batch block size: 500
Max concurrency: 3
Scheduling strategy: ROUND_ROBIN
Max failed records: -1
Accept policy for both steps: ALL
Despite this configuration, the batch takes around 10 hours to process 65,000 records
, which seems excessively long.
How can i make my batch take less time ?