Hi Max and Alex, sorry I just saw your questions.
For #1, #2, and #3:
Absolutely, if your worker has more resources, it will be able to run more flows at the same time. Adding concurrency limits here is important so not all your flows are taken by just one worker.
Overall, it's worth trying to optimize your resources based on the nature of the flows you're running. e.g. If they're CPU bound, that's the bottle neck, and adding more memory won't help much.
For #3 in particular, I'd opt for increasing replica count. Although they can both arguably be done to achieve the higher concurrency, I like to think of it as one for functional need, vs underlying infra.
As for #4, I think you'll need separate work pools to achieve that if I understand it correctly. Same goes for
@Alex Wilcoxson's question. The closest thing we support from what I can see is
Work Queues, but that's more for prioritization rather than complete flow selection similar to Taints and Tolerations in Kubernetes.