Design a Job Scheduler — System Design Interview Practice
Design a distributed job scheduling system to execute tasks at specified times or intervals. Work through the requirements, architecture trade-offs, and an interactive design review.
Requirements and concepts to consider
- Schedule jobs for future executionRequirement
- Support one-time and recurring jobsRequirement
- Prioritize jobs based on importanceRequirement
- Retry failed jobs with backoffRequirement
- Track job status and historyRequirement
- Support cron-like expressionsRequirement
- Distribute jobs across workersRequirement
- Handle millions of jobsRequirement
- schedulingConcept to explore
- distributed systemsConcept to explore
- background jobsConcept to explore
- cronConcept to explore