Many workflows require multiple Activities to execute on the same Worker to maintain data locality. Common scenarios include file processing, ML model caching, and database connection pooling. In all these cases, using multiple Workers adds unnecessary overhead and resource use. Things like database connections and ML models operate better if multiple Activities are run on the same Worker.
The Temporal Validated Pattern "Ensure Activity execution on the same Worker" uses Worker-specific Task Queues to ensure all Activities in a workflow execute on the same Worker. Each Worker polls two Activity Task Queues: a shared queue and a unique queue. The Workflow calls an Activity on the shared queue to discover an available Worker's unique queue name. The Workflow routes all subsequent Activities to that Worker's unique queue. As a result, all Activities execute on the same Worker, maintaining data locality.