Isolated flag will make the underlying workflow be launched as a completely separate process (you can check with procexp and you’ll see a separate UiRobot.exe with /executor in cmdline).
This has some advantages:
- Separate memory address space.
- Better ability to recover from crashes (f.e. this was the recommended calling way for MODI OCR since it’s not 100% stable).
But there are also drawbacks:
- All arguments will need to be serialized (using JSON serialization). Non-serializable arguments will throw on this and some types (f.e. DataTable) can sometimes produce weird results.
- It’s a little bit slower due to serialization and process startup times.
- Some large objects as arguments (f.e. datatables >300kB) had some issues due to pipe write limit (don’t remember the details exactly, just keep in mind that large arguments may be an issue when they previously weren’t).
In practice it’s similar to suspending current robot, spinning up a new one, doing work with it, and pushing the results back to the main one.
Regards,
Andrzej