Schedule Service

A service that will invoke another services endpoint on a schedule.

Overview

Schedule services maintains a list of jobs to invoke on a schedule.

Any other service can choose to create a job by invoking schedule-service.create-job and instructing schedule service which subject to invoke and at what schedule.

The job can either be a one-off job or be invoked repeatedly according to a cron expression.

[At service start]  Foo Service -> Schedule Service: Ensure that you invoke foo-service.do-stuff every 5 minutes
[After 5 min]       Schedule Service -> Foo Service: foo-service.do-stuff
[After 10 min]      Schedule Service -> Foo Service: foo-service.do-stuff
etc...

Handling failures

TODO

Limitations

Schedule service is (probably) the only stateful service in Fruster. This means that you cannot have multiple instances in parallel as that would risk that jobs are invoked multiple times.