Understanding of temporal threading pools


This is regarding the various thread pools which are created internally. Do we have any docs on each of the thread pools significance.

1. workflow-thread-15
2. Workflow Poller taskQueue="DefaultTaskQueue", namespace="default": 5
3. workflow-method-xxxxx
4. Workflow Executor taskQueue="DefaultTaskQueue", namespace="default": 9
5. Activity Poller taskQueue="DefaultTaskQueue", namespace="default": 5
6. Activity Executor taskQueue="DefaultTaskQueue", namespace="default": 9

Pollers (workflow tasks, activity tasks):
WorkerOptions->setMaxConcurrentWorkflowTaskPollers/setMaxConcurrentActivityTaskPollers (default 5 for reach)
Your workers create by default 10 long-poll connections to service that service can dispatch workflow and activity tasks to. Each connection uses a thread from created poller pool.

Executors (for workflow tasks, activity tasks):
WorkerOptions->setMaxConcurrentWorkflowTaskExecutionSize/setMaxConcurrentActivityExecutionSize (default 200 for each)
Pollers deliver tasks to executors that are responsible for executing the workflow and activity tasks. Each executor slot uses thread from executors pool.

WorkerFactoryOptions->MaxWorkflowThreadCount (default 600) number of threads available for workflow executions across all workers created from this factory (includes cached workflows)

Thank you @tihomir

@tihomir what is the difference in terms of their roles between the thread named “Workflow Executor”, the thread named “workflow-method” and the thread named “workflow-thread-x”?