Hi, everybody
Temporal is an amazing tool, but I can’t wrap my head around one thing. The problem is:
I have starter A and multiple workers B, C, D. B, C and D have identical code, but based on the environment in which they are deployed, they can have some slightly different parameters. Also, workers can have multiple copies of themselves. They need to be invoked simultaneously. Additionally, in future there may be other workers like E and F which will have their own environments and some changes to execution.
I can’t find any info in docs if this even possible.
Exemplary scheme below
but based on the environment in which they are deployed, they can have some slightly different parameters
Can you elaborate on what parameters are different? Do you mean like activity / child workflow options that you define in workflow code or worker options are different, maybe something else?
More precisely factory will spawn different classes based on environment variables. And activity will work with the given class.
What do you mean by that? Should all the workers be invoked simultaneously by a single request? Are you looking for some sort of one-to-many notification?
yes, exactly like that
Dispatching a client request to multiple task queues is I believe something planned to be added in the future.
What’s the rate of requests you need to process?
One idea could be to have a long-running “signal dispatching” workflow on its specific task queue that would receive all client signals. Your other workers when they they start up can register their task queue and workflow types (via client api signalWithStart) with this workflow. The workflow that receives all the requests then can dispatch received signals to the registered task queues to be picked up by these workers. When you stand up new workers as you mentioned then they can use same process to register themselves with the dispatcher. Maybe this helps.