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.