We were poc-ing different wf tools, and argo stands out given wide range of feature and it being k8s native, but we have use cases of long-running steps and we want an event based system to trigger next step or retry previous step based on the event(e.g. status of the remote job), is it possible to achieve this via argo-events?
2 Answers
To Clarify your usecase, you have long-running (like keep running service) step which will produce the events to trigger the which step/workflow needs to run based on the event. Is it correct?
For the above usecase, you can use Argo-event to trigger the Argo workflow from the external event like (Github, S3, stream, SNS, calendar event, etc...).
You can break down you steps into different argo workflows. Then leverage argo events to tie up those workflows together. For eg: There are quite few ways to configure your event source with argo events. You can configure gcp pubsub or kafka topic as your event source for each workflow. Then you can create a pipeline or a series of workflows which are linked via above created event sources.
kafka topic1 ===> WF1 --sends msg--> kafka topic2 ===> WF2 ...and so on.
By doing this you can retry any workflow by simply sending a message to the respective topic.