I am looking at using Temporal Service as the core for our Service Orchestration Workflow engine. I would like to expose the Service Orchestration Workflow engine as a service on cloud. Basically each of our service tenant would get set of endpoints using which they can deploy DSL based workflows and basically do operations such as start, cancel, signal etc. Our APIs would take care of the authentication and authorisation in our service. Temporal would not be made directly accessible.
There are couple points that come to my mind before we start digging deeper with our design.
-
From what I understand based on this thread How can I support my use case for multi-tenant system?, currently there is no recommended way to achieve resource level isolation for various tenant. Using namespace I understand is not recommended. Do you see this coming as feature in near future.
-
I am thinking of having a DSL parser and feed the input to a Generic temporal Workflow implementation. I want some guidance on the task queue creation and worker assignment. From the documentation I read, it is fine to have task queues per Business Objects such as Orders or Invoices etc. Can I also have worker per task queue, which would be one worker per running instance. Can this model scale for heavy volumes across tenants.
-
If the above is feasible, is there a querying capability currently available that would allow us to query for Workflow instances and logs based one some GUID which would be tenant specific. Ex. we could append the tenant GUID to temporal generated RUN ID and do a starts with kind of query to fetch all instances.
-
Also, we would want to try running Temporal on SAP HANA DB, do you see any issues with it.