Design a Task Scheduler

Last updated: June 17, 2026

Quick Overview

Design a distributed job scheduling system. Cover job prioritization, cron-like recurring tasks, failure handling and retries, resource allocation, and ensuring exactly-once execution semantics.

Google
System Design
Software Engineer
Google
June 17, 2026
Software Engineer
System Design Round
System Design
Medium

354

0

274 solved


Design a distributed job scheduling system. Cover job prioritization, cron-like recurring tasks, failure handling and retries, resource allocation, and ensuring exactly-once execution semantics.

How to Approach This
  1. Start by clarifying functional and non-functional requirements with the interviewer.
  2. Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
  3. Draw a high-level architecture first, then deep dive into 1-2 critical components.
  4. Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
  5. Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Sharpen Your Skills on Codemia

Practice similar problems with our interactive workspace, get AI feedback, and track your progress.

Practice System Design Problems
Sample Answer
Requirements
  • Functional Requirements:
    • Job submission: Users should be able to submit jobs with parameters such as priority, schedule (cron-like), and resource requirements.
    • Job prioritization: The sy...
Capacity Estimation

Assuming Google has a user base that submits a large number of jobs:

  • Daily Job Estimates:
    • If we estimate 10 million jobs submitted per day, that’s approximately 115 jobs per second.
  • **Job...

Submit Your Answer
Markdown supported

Related Questions