Overview
The Matching Service is responsible for:- Managing task queues for workflows and activities
- Distributing tasks to available workers
- Task queue partitioning and load balancing
- Worker versioning and build ID compatibility
- Task queue user data and configuration
- Nexus endpoint management
- Worker heartbeat and health tracking
Service Methods
Task Polling
PollWorkflowTaskQueue
Polls for a workflow task from a task queue.string
required
UUID of the namespace
string
required
Unique identifier for the worker polling
PollWorkflowTaskQueueRequest
required
Poll parameters including task queue name and worker identity
string
Source partition if forwarded from another partition
bytes
Opaque token identifying the task
WorkflowExecution
Workflow execution information
WorkflowType
Type of the workflow
int64
Event ID when task started
History
Workflow history events for the task
PollActivityTaskQueue
Polls for an activity task from a task queue.string
required
Namespace UUID
string
required
Unique poller identifier
PollActivityTaskQueueRequest
required
Poll parameters
string
Source partition if forwarded
bytes
Task token
WorkflowExecution
Parent workflow execution
string
Activity identifier
ActivityType
Type of activity
Payloads
Activity input parameters
Timestamp
When the activity was scheduled
Timestamp
When current attempt was scheduled
PollNexusTaskQueue
Polls for a Nexus task from a task queue.string
required
Namespace UUID
PollNexusTaskQueueRequest
required
Poll request with task queue and worker identity
bytes
Token for the Nexus task
Request
Nexus request details
Task Addition
AddWorkflowTask
Adds a workflow task to a task queue.string
required
Namespace UUID
WorkflowExecution
required
Workflow execution identifier
TaskQueue
required
Target task queue
int64
required
Event ID when task was scheduled
TaskSource
Source of the task (history, backlog)
string
Source if forwarded from another partition
AddWorkflowTaskResponse
Empty response on success
AddActivityTask
Adds an activity task to a task queue.string
required
Namespace UUID
WorkflowExecution
required
Parent workflow execution
TaskQueue
required
Target task queue
int64
required
Event ID when activity was scheduled
TaskSource
Task source
string
Forwarding source partition
AddActivityTaskResponse
Empty response on success
Query Management
QueryWorkflow
Forwards a workflow query to a worker.string
required
Namespace UUID
TaskQueue
required
Task queue where workflow is processing
QueryWorkflowRequest
required
Query parameters
string
Source partition
Payloads
Result of the query
QueryRejected
Rejection details if query was rejected
RespondQueryTaskCompleted
Records completion of a query task.string
required
Namespace UUID
TaskQueue
required
Task queue
string
required
Query task identifier
RespondQueryTaskCompletedRequest
required
Completion details
Nexus Operations
DispatchNexusTask
Dispatches a Nexus task to a worker.string
required
Namespace UUID
TaskQueue
required
Target task queue
Request
required
Nexus request to dispatch
Response
Nexus response from worker
RespondNexusTaskCompleted
Records successful completion of a Nexus task.string
required
Namespace UUID
bytes
required
Nexus task token
Response
required
Task response
RespondNexusTaskFailed
Records failure of a Nexus task.string
required
Namespace UUID
bytes
required
Nexus task token
Error
required
Failure error details
Nexus Endpoint Management
CreateNexusEndpoint
Creates a new Nexus endpoint.EndpointSpec
required
Endpoint specification including name, target
Endpoint
Created endpoint with assigned ID
UpdateNexusEndpoint
Updates an existing Nexus endpoint.string
required
Endpoint ID
int64
required
Current version for optimistic concurrency
EndpointSpec
required
Updated endpoint specification
Endpoint
Updated endpoint
DeleteNexusEndpoint
Deletes a Nexus endpoint.string
required
Endpoint ID to delete
int64
required
Current version
DeleteNexusEndpointResponse
Empty response on success
ListNexusEndpoints
Lists all Nexus endpoints.int32
Maximum endpoints per page
bytes
Pagination token
Endpoint[]
List of endpoints
bytes
Token for next page
Task Queue Description
DescribeTaskQueue
Retrieves information about a task queue.string
required
Namespace UUID
DescribeTaskQueueRequest
required
Description request with task queue name and type
PollerInfo[]
List of active pollers
TaskQueueStatus
Task queue status including backlog
TaskQueueVersionInfo[]
Version information for versioned task queues
DescribeTaskQueuePartition
Retrieves information about a specific task queue partition.string
required
Namespace UUID
TaskQueue
required
Task queue identifier
int32
required
Partition ID
PollerInfo[]
Pollers on this partition
PartitionConfig
Partition configuration
DescribeVersionedTaskQueues
Describes task queues with versioning information.string
required
Namespace UUID
TaskQueue
required
Task queue name
TaskQueueVersionSelection
Version selection criteria
VersionedTaskQueueInfo[]
Information for each versioned queue
ListTaskQueuePartitions
Lists all partitions for a task queue.string
required
Namespace name
TaskQueue
required
Task queue identifier
TaskQueuePartitionMetadata[]
Activity task queue partitions
TaskQueuePartitionMetadata[]
Workflow task queue partitions
Worker Versioning
UpdateWorkerBuildIdCompatibility
Updates build ID compatibility rules for a task queue.string
required
Namespace UUID
string
required
Task queue name
BuildIdOp
required
Build ID operation (add, promote, mark_default)
UpdateWorkerBuildIdCompatibilityResponse
Empty response on success
GetWorkerBuildIdCompatibility
Retrieves build ID compatibility rules.string
required
Namespace UUID
string
required
Task queue name
int32
Maximum compatibility sets to return
CompatibleVersionSet[]
Compatible version sets
UpdateWorkerVersioningRules
Updates versioning rules for workers.string
required
Namespace UUID
string
required
Task queue name
UpdateWorkerVersioningRulesRequest
required
Versioning rules update
UpdateWorkerVersioningRulesResponse
Updated rules
GetWorkerVersioningRules
Retrieves current versioning rules.string
required
Namespace UUID
string
required
Task queue name
VersioningAssignmentRule[]
Assignment rules
VersioningRedirectRule[]
Redirect rules
Task Queue User Data
GetTaskQueueUserData
Retrieves user data for a task queue.string
required
Namespace UUID
string
required
Task queue name
TaskQueueUserData
User data including versioning info
UpdateTaskQueueUserData
Updates user data for a task queue.string
required
Namespace UUID
string
required
Task queue name
TaskQueueUserData
required
Updated user data
string[]
Associated build IDs
UpdateTaskQueueUserDataResponse
Empty response on success
ReplicateTaskQueueUserData
Replicates task queue user data across clusters.string
required
Namespace UUID
string
required
Task queue name
TaskQueueUserData
required
User data to replicate
Worker Management
RecordWorkerHeartbeat
Records a heartbeat from a worker.string
required
Namespace UUID
string
required
Worker identity
string
required
Task queue the worker is polling
RecordWorkerHeartbeatResponse
Empty response on success
ListWorkers
Lists workers polling a task queue.string
required
Namespace UUID
string
required
Task queue name
int32
Maximum workers per page
WorkerInfo[]
List of worker information
DescribeWorker
Retrieves detailed information about a worker.string
required
Namespace UUID
string
required
Worker identity
WorkerInfo
Detailed worker information
Partition Management
ForceLoadTaskQueuePartition
Forces loading of a task queue partition.string
required
Namespace UUID
string
required
Task queue name
int32
required
Partition to load
ForceLoadTaskQueuePartitionResponse
Empty response on success
ForceUnloadTaskQueue
Forces unloading of a task queue.string
required
Namespace UUID
string
required
Task queue to unload
ForceUnloadTaskQueueResponse
Empty response on success
ForceUnloadTaskQueuePartition
Forces unloading of a specific partition.string
required
Namespace UUID
string
required
Task queue name
int32
required
Partition to unload
Additional Operations
CancelOutstandingPoll
Cancels an outstanding poll request.string
required
Namespace UUID
TaskQueueType
required
Type of task queue
TaskQueue
required
Task queue identifier
string
required
Poller to cancel
GetBuildIdTaskQueueMapping
Retrieves mapping between build IDs and task queues.string
required
Namespace UUID
string
required
Build ID to query
string[]
Task queues associated with the build ID
UpdateTaskQueueConfig
Updates configuration for a task queue.string
required
Namespace UUID
string
required
Task queue name
TaskQueueConfig
required
Configuration to apply
UpdateTaskQueueConfigResponse
Empty response on success
Usage Notes
- Long polling is used for task distribution with configurable timeouts
- Task queue partitioning enables horizontal scaling
- Worker versioning supports gradual rollouts and compatibility management
- Sticky task queues improve workflow task performance
- The service handles automatic task forwarding between partitions