Search code examples
ooziemesosmarathon

Apache Mesos Workflows - Event Driven Scheduler


We are currently using Apache Mesos with Marathon and Chronos to schedule long running and batch processes.

It would be great if we could create more complex workflows like with Oozie. Say for example kicking of a job when a file appears in a location or when a certain application completes or calls an API.

While it seems we could do this with Marathon/Chronos or Singularity, there seems no readily available interface for this.


Solution

  • You can use Chronos' /scheduler/dependency endpoint to specify "all jobs which must run at least once before this job will run." Do this on each of your Chronos jobs, and you can build arbitrarily complex workflow DAGs.

    https://airbnb.github.io/chronos/#Adding%20a%20Dependent%20Job

    Chronos currently only schedules jobs based on time or dependency triggers. Other events like file update, git push, or email/tweet could be modeled as a wait-for-X job that your target job would then depend on.