We are building a new workflow system on top of Temporal and wanted to clarify a few things.
Imagine a use-case:
- Send an email to list of users
- Wait for 7 days
- For users who didn’t open the email, send a follow up email
- As soon as the user opens the follow up email and visits the website, notify downstream service.
Going through the documentation, sending the email will be a separate activity and we are planning to use signals to wait for the external event.
The questions we have are:
A. Can the signal state be maintained within the workflow execution, or is it better to persist it in a db?
B. We are planning to use a DSL/Internal UI to define the business workflow and translate that to a Temporal workflow. From step (3) in the above example, how can we listen to multiple signals?
C. Do you have any Java examples for converting a DSL to a Temporal workflow?