Live data from Hacker News

Maestro: Netflix's Workflow Orchestrator

netflixtechblog.com

21–30 of 165 posts

Re: Maestro: Netflix's Workflow Orchestrator

#21

I wonder how many iterations we will need before engineers are happy with a workflow solution. Netflix had multiple solutions before Maestro, such as metaflow. Uber built multiple solutions too. Amazon had at least a dozen internal workflow engines. It's quite curious why engineers are so keen on building their own workflow engines. Update: I just find it really interesting that many individuals in many companies lik…

Naming things, cache invalidation, and workflow engines? :)

https://github.com/meirwah/awesome-workflow-engines

Re: Maestro: Netflix's Workflow Orchestrator

#23
post #19

why would one consider this over something more established such as Temporal, also I see Maestro is written in Java vs Temporal's Go

Netflix also uses temporal: https://temporal.io/in-use/netflix

Is Temporal still alive?

(website doesn't resolve for me)

EDIT: I found the GitHub page

https://github.com/temporalio/temporal

Re: Maestro: Netflix's Workflow Orchestrator

#24

I wonder how many iterations we will need before engineers are happy with a workflow solution. Netflix had multiple solutions before Maestro, such as metaflow. Uber built multiple solutions too. Amazon had at least a dozen internal workflow engines. It's quite curious why engineers are so keen on building their own workflow engines. Update: I just find it really interesting that many individuals in many companies lik…

We rolled our own workflow engine and it almost crashed one of our unrelated projects for having so many bugs and being so inflexible.

I’m starting to think workflow engines are somewhat of a design smell.

It’s enticing to think you can build this reusable thing once and use it for a ton of different workflows, but besides requiring more than one asynchronous step, these workflows have almost nothing in common.

Different data, different APIs, different feedback required from users or other systems to continue.

Re: Maestro: Netflix's Workflow Orchestrator

#25
post #7

Whats the difference of this and enqueue work into a queue then waiting for a job to pick it up at a scheduled time? Not saying build a Kafka cluster to serve this but most cloud providers have queuing tools.

Putting work in a queue is only the start. Most organizations start there and gradually write ad hoc logic as they discover problems like dependencies, retries, & scheduling.

Dependencies: what can be done in parallel and what must be done in sequence? For example, three tasks get pushed in the queue and only after all three finish a fourth task must be run.

Retries: The concept is simple. The details are killer. For example, ifa task fails, how long should the delay between retries be? Too short and you create a retry storm. Forget to add some jitter and you get thundering hoards all retrying at the same time.

Scheduling: Because cron is good enough, until it isn't.

A good workflow solution provides battle tested versions of all of the above. Better yet, a great workflow solution makes it easier to keep business logic separate from plumbing so that it's easier to reason about and test.

Re: Maestro: Netflix's Workflow Orchestrator

#26
post #7

Whats the difference of this and enqueue work into a queue then waiting for a job to pick it up at a scheduled time? Not saying build a Kafka cluster to serve this but most cloud providers have queuing tools.

workflows typically involve chains of jobs with state transitions, waits, triggers, error handling etc

a lot more than just e.g. celery jobs

Re: Maestro: Netflix's Workflow Orchestrator

#27
post #19

Earlier quoted context omitted.

Netflix also uses temporal: https://temporal.io/in-use/netflix

Is Temporal still alive? (website doesn't resolve for me) EDIT: I found the GitHub page https://github.com/temporalio/temporal

The site loads fine for me.

See also: https://downforeveryoneorjustme.com/temporal.io

Re: Maestro: Netflix's Workflow Orchestrator

#28
post #6

Is this meaningfully different from Conductor (which they archived a while back)? Browsing through the code I see quite a few similarities. Plus the use of JSON as the workflow definition language.

Conductor was moved here: https://github.com/conductor-oss/conductor Maestro uses conductor as its core.

https://github.com/Netflix/maestro/blob/main/maestro-engine/...

https://netflixtechblog.com/orchestrating-data-ml-workflows-...

Re: Maestro: Netflix's Workflow Orchestrator

#29

Very nice, Netflix has a reputation of making great OSS products. I wonder where does this stand with Conductor.

Maestro is a domain specific implementation for ML and data pipelines that uses Conductor as its core

https://netflixtechblog.com/orchestrating-data-ml-workflows-...

https://github.com/Netflix/maestro/blob/main/maestro-engine/...

Re: Maestro: Netflix's Workflow Orchestrator

#30

why would one consider this over something more established such as Temporal, also I see Maestro is written in Java vs Temporal's Go

isn’t Maestro an alternative to Airflow, not Temporal? Temporal isn’t a workflow orchestrator. There’s some overlap on the internals but they’re different designs for different use cases.
Post reply on HN