Can new workflow types be loaded into a running Temporal worker without redeploying

Is it possible (or planned) to hot-load NEW workflow types into a running worker without redeploying?

We work in insurance document processing (PDF, Excel, etc.), and we frequently add new workflow types. Currently, adding a new workflow requires building a new worker image, deploying a new worker, and stopping the old worker once the new one comes up. This approach works and avoids downtime through blue-green deployment, but it still adds operational overhead.

What we already understand is that determinism prevents changing existing workflow logic, versioning must be used when modifying existing workflows, activities are isolated for us, worker code is loaded at startup, and Temporal does not support dynamic registration today. Our requirement is only about adding brand-new workflow types, not modifying old ones.

What we wish existed is a way to register new workflow types at runtime through an API, which would eliminate even the small deployment step and make the system easier to operate.

Our main questions are:

  1. Is hot-loading new workflow types fundamentally impossible in Temporal’s architecture?
  2. Is the limitation due to determinism, worker initialization design, or simply missing SDK support?
  3. Is something like this planned, discussed, or considered for the future?
  4. If not possible, what is the core architectural reason?

We want to understand whether this is a hard ‘never’, or simply ‘not implemented yet’, so we can plan our systems accordingly.

Thank you!

Hi,

I think Worker Versioning is something you want to look into. This paired with the Temporal Worker Controller takes a lot of complexity and toil out of managing worker versions. You can deploy new versions of workers and let workflows running on old workers drain out.

What we wish existed is a way to register new workflow types at runtime through an API, which would eliminate even the small deployment step and make the system easier to operate.

I don’t think that’s feasible. Temporal does not really care about what workflows are doing. It just drives the mechanics to let workflows make process and provides durability to this process. The actual work is done in the workers. Even if you could “register” new workflow types, you also would need to provide the implementation to execute these. Monkey patching existing deployments to do this does not seem like a sound approach to do this (any many languages don’t even support this). Assuming you are running on some container based runtime, e.g. Kubernetes, then you do need to build new worker images when you add new workflows.

–Hardy