We developed and use Argo ( https://github.com/argoproj/argo ), a Kubernetes-native workflow engine. Argo is currently used by companies like Cyrus Biotechnology, Gladly, Google, Intuit, and NVIDIA. Currently collecting use cases and requirements on a Kubernetes-native eventing framework for Argo ( https://github.com/argoproj/argo-events/issues/1 ) to make it easier to kick off workflows.
Does Argo support recovery? In the sense that if a workflow step or the workflow engine crashes halfway, the last (idempotent) action is retried?
Ask HN: How do you handle long-running workflows at your company?
61–70 of 84 posts
Re: Ask HN: How do you handle long-running workflows at your company?
#62At LinkedIn we heavily use Azkaban for this. (Open source: https://azkaban.github.io/ ) Azkaban API can be used to launch offline computation jobs as necessary - Azkaban ensures monitoring, SLA alerting, failed restarts and other dependency management etc.
The documentation often mention Hadoop and data jobs, have you also used it for non-data things? Would you by chance have some workflows examples?
Re: Ask HN: How do you handle long-running workflows at your company?
#63Earlier quoted context omitted.
No obvious solutions? Many enterprise companies have a workflow management product. Adobe has one which it makes quite a bit of enterprise revenue from. https://www.adobe.com/uk/marketing-cloud/experience-manager/...
Indeed - but I do not think it's related to the question. The question here is: how do I - as a developer - implement a workflow? Still there are numerous BPM solutions, but often overly sophisticated. You have AWS SWF, but complicated to use, Airflow but in Python only, your own implementation using queues, database, etc... Look at the diversity of answers: there is no obvious answer right now.
The only concern I have is having such a critical part of my application running in a proprietary SaaS environment. Do you have plans to consider on-premise licensing or having an open-source community codebase with enterprise plans?
Re: Ask HN: How do you handle long-running workflows at your company?
#64We developed and use Argo ( https://github.com/argoproj/argo ), a Kubernetes-native workflow engine. Argo is currently used by companies like Cyrus Biotechnology, Gladly, Google, Intuit, and NVIDIA. Currently collecting use cases and requirements on a Kubernetes-native eventing framework for Argo ( https://github.com/argoproj/argo-events/issues/1 ) to make it easier to kick off workflows.
Does Argo support recovery? In the sense that if a workflow step or the workflow engine crashes halfway, the last (idempotent) action is retried?
Re: Ask HN: How do you handle long-running workflows at your company?
#65Re: Ask HN: How do you handle long-running workflows at your company?
#66Re: Ask HN: How do you handle long-running workflows at your company?
#67What kind of workflows take multiple days? I am assuming that means human inputs are needed for (some) steps?
Re: Ask HN: How do you handle long-running workflows at your company?
#68What kind of workflows take multiple days? I am assuming that means human inputs are needed for (some) steps?
Most waiting (hours-days) happened because the work was waiting in a queue for a user to take care of it.
Re: Ask HN: How do you handle long-running workflows at your company?
#69At LinkedIn we heavily use Azkaban for this. (Open source: https://azkaban.github.io/ ) Azkaban API can be used to launch offline computation jobs as necessary - Azkaban ensures monitoring, SLA alerting, failed restarts and other dependency management etc.
Azkaban really seems to strike the right balance between simplicity and featurefulness, I'll definitely give it a try! Plus it seems relatively simple to deploy & maintain. The documentation often mention Hadoop and data jobs, have you also used it for non-data things? Would you by chance have some workflows examples?
Note execution environment for such jobs is Azkaban executor server itself, so you have to take care of resource management (eg. one job taking all RAM on the machine will affect other jobs running on the same machine)
Re: Ask HN: How do you handle long-running workflows at your company?
#70edit: to add, I would highly recommend using a workflow engine over a distributed messaging system. With messages it's hard to track where a given work item is in your pipeline, and it's not always easy to do mass operations such as just stopping all running workflows (e.g. when you have an outage) and resuming them later, re-driving failed items from the beginning of the workflow, etc. Workflow engines typically give you a nice dashboard where you can do all those things, for free.