Best Practices for a case

Hi all,

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.

Question:

  • 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)?