Hello, I’m experimenting with Temporal to build a DSL based workflow execution framework aimed at simplifying the workflows creation for my company.
At the outset, I want to thank the team who have put together a wonderful piece of software which otherwise would be incredibly hard to build (reliably) from scratch.
Now, I have one generic workflow that accepts a DSL and dynamically calls one activity function.
The execution flow is dynamically driven by DSL and the code simply acts as a dynamic implementation of the flow defined in the DSL.
This is pretty much like a generic workflow calling a generic activity depending upon the DSL steps.
Within the activity, I call different microservices based on the values defined in the DSL (thats the implementation part).
I always have only one activity function (and only one task queue).
This seem to work well on my laptop so that’s encouraging.
2 questions:
-
Are there any downsides/caveats to this approach (in terms of scalability/recovery etc)? As a side note, I tried killing the worker/temporal server etc and I’m able to see this resuming from the point where it left off when they are back up - so that’s promising so far - but still want to hear for any gotchas that I need to know.
-
I want rate limiting to be applied for certain activity calls (dynamically). In my case it’s always one activity function. But depending upon the values defined in my DSL, I want to be able to rate limit an activity. Is this possible?