Say I have 1 Performer robot with REF design. In the Process part, we split into 3 modules, sequentially. eg:
i. Merging PDF files & do some business matching
ii. Data extraction & IDP
iii. Sending out email
Is it possible/best practice to use 1 queue each to sent data from module i to ii & ii to iii?
This is because if there’s any error in any of the module, we would want to retry that item STARTING only from that specific module. Retry scope is added, but say if we want to ‘reprocess’ again regardless (business requirement).
If this is possible, I’m puzzled on how we can set each queue items status as we are setting the transaction status usually at end of Process. Should we do Nested REFs?
I usually keep one queue but have the dispatcher create three queue items for each case.
E.g. for case 001, the dispatcher will create three queue items with the references Case001_Step1, Case001_Step2, Case001_Step3.
Then in the performer, I have a flow chart that select the processing depending on the queue item’s reference.
E.g. if the reference ends with “_Step1”, invoke workflow “Process_MergePDFs”. If it ends with “_Step2”, invoke workflow “Process_DataExtraction”, etc.
Dispatcher specifies to the Performer what cases to use and the performer switches its logic. The queue item data has all the necessary information regarding the case and the both dispatcher/performer use only one queue. As @Anil_G said, maintainability is important.