In a project, we must process a series of data (records) in the following way:
- extract “New Requests” from a web site
- for each request, perform the following actions:
- login to System_1 and make an entry; keep the outcome of System_1 for future use
- login to System_2 and make a new entry, using data from the previous ones; keep the outcome of System_2 for future use
- login to System_5 and make a new entry, using data from the previous ones; keep the outcome of System_5 for future use
- update the status of the request in the initial web site as “Success” or “Fail”
there is an ‘easy’ but expensive way to tackle this: sequentially process a request in all systems: from 1 to 5; upon completion, proceed to the next and so on.
I would like to follow a different approach:
- create a process for each system
- create a Queue in the Orchestrator (one per system)
the idea is that Bot_1 will extract data from the Orders system, and put in a the Queue.
Bot_2 will pick up items from Queue_1, process them and:
- if process is successful, then move it to Queue_2
- if there is an exception, then move it back to Queue_1, until it’s manually resolved
This way, I will need 5 different processes and 5 queues, but my expectation is that those will move and complete faster, than in a sequential approach; plus, I can handle more requests.
- Is this approach correct?
- How can all those bots run in parallel?
- What is the right licensing scheme to support it? I mean, do I need 1 Runner per bot?
- Can I leverage the Max threshold (have a Windows Server as the Bot Runner OS; have 5 different users; assign a bot to each of those users; pay for the Unattended Bot Concurrent license)?