I’m exploring temporal and trying to understand if this can fit my needs. Since this project appears to be amazing but huge, I’d love and appriciate hearing you feedback.
My goal is to be able to define a workflow like the following:
- start the workflow based on time (cron-like) OR based on kafka event OR grpc/http call
- make an http/grpc call (at the moment, but could also be a message sent over kafka) in order to send a commant to an IoT device
- wait for feedback (command ack): http/grpc call or kafka message
- (optional) each device send a report every X minutes, handle and process these events while waiting the “command execution result” (next step). This is optional because perhaps these messages can avoid going through temporal, I guess it depends on the final design
- wait for command execution result: this could be a matter of minutes, hours or even days. The “feedback” should be received through a kafka message, but in case this wouldn’t be possible, can be replaced with ad http/grpc call.
- proceed making a new http/grpc call or producing a kafka message (new command for an IoT device)
- wait again for the reusult
- an so on…
- each “wait action” must have a known timeout
- if something fails, the workflow must be stopped and the error reported via http/grpc/kafka
- each worflow must be created/deleted/managed programmatically: the users, through our UI, will be able to create/delete/update workflows by themselves
Since this this is a brand new project, at this very moment we have a very low message rate, but we must be ready for a fast-growing scenario
Thank you very much