I’m trying to understand what does setMaxConcurrentWorkflowTaskExecutionSize worker option (How to set WorkerOptions in Go | Legacy documentation for Temporal SDKs) actually mean.
It says “Sets the maximum number of concurrent Workflow Task Executions the Worker can have.”. On first reading (and implementation using Java SDK), we had an assumption that a configured number of workflows will be executed one by one. That means, if we set this option to 1, than workflows will be executed in FIFO order as taken from task queue. But from practice, looks like workflows just quickly schedule activities and then are just replaced with next workflows, so in fact few workflows are effectively being executed at the same time. While that is great for performance (like “green threads”), this behavior is not helpful when order of workflow execution is important (e.g. batching).
Also, maybe it’s worth mentioning at JavaDoc for this parameter?
Are my assumptions correct? Is there a simple way to enforce FIFO execution order of workflows?
I’ve already seen Limit workflow-based concurrent executions? - #8 by tihomir but that is not relevant.