Good info!
Sharing my personal experience, I’ve never encountered a case where Integration Server ended up being the bottleneck. And have never needed to directly manage parallel threads. In cases where “the integration is too slow” the root cause has been in the end points. This is not to say IS would never be a problem, but to note “don’t be myopic and only look in one place.”
Similar to the “3 rules of real estate” being “location, location, location” the rules of tuning are “measure, measure, measure.” And don’t optimize too early. Most guesses about where the speed needs to be are wrong. Or, more likely, speed doesn’t matter. Completing an unattended automation in 2 seconds instead of 5 or even 30+ likely does not matter to anyone.
Here is an item that may likely come up in this: the use of transformers to introduce parallelism. There is a thread discussing this. There is a debate about whether transformers run in parallel – my advice is don’t use transformers solely based upon the assumption they will be “faster.” First, it is not certain they will be. Second, it is not known whether it matters that the step with transformers is faster or not. Measuring is the only solid way to determine where a bottleneck is and measuring after is the only way to know changes have made a difference…