● Job Editor: The user should be able to add/view/update/delete a job and its schedule
● Job Status: The user should be able to see the status of a job (ready/running/failed/finished)
● Execution History: The user should be able to see the execution history of a job
● Retry Support: The system should be able to retry the failed jobs
● On-time execution: The system should trigger the jobs within 1 minute of the scheduled time
● Recurring jobs: Jobs schedule frequency could be a combination of min/hour/day/week/month
● End date: Recurring jobs may or may not have an end date
● Low Latency
● High Availability