I wanted to design UI based workflows for the business folks. Thinking of using Temporal to process the DSLs, how do i go about it. Any reference, resources to help me in getting started.
I have already gone through the dsl sample given in samples-go github repo. Looking for some good resources.
Hi, what kind of specific questions do you have? Typically idea is to define a very restrictive and custom (domain-specific to you, not a generic one) language (json/yaml) which becomes either input to your workflow or workflow can pull via activity when it starts up. Then have an interpreter that understands how to translate that json/yaml into set of Temporal directives (activities/child workflows/timers, …).
I think key is to keep this DSL as restrictive as possible, as things like versioning, looping, exception handling, retry options, limits of single exec in terms of event count/size/other limits is hard to express and should imho not be managed in the DSL itself. Also should limit DSL to number of “steps” (activities) according to Temporal limits for example event history count and max number of pending activities/child workflows.
So I guess generic advice I can at least give is, once you see youself expanding your DSL to not just include simple sequence of “steps” but start adding more and more stuff to it, consider just writing your workflows with code.