Design a job scheduler

Quick Overview

This question evaluates competency in designing scalable, durable distributed job schedulers, covering multi-tenant architecture, queuing and metadata persistence, execution semantics, idempotency, retries/dead-lettering, failure handling, and observability.

Design a job scheduler

Company: Applied Intuition

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a scalable job scheduler that supports immediate and delayed execution, recurring (cron-like) jobs, priorities, retries with backoff, and job dependencies. Specify the system components (API layer, scheduler/dispatcher, queues, workers/executors, metadata store), data models, and core APIs (submit, cancel, pause, resume, status). Discuss execution semantics (at-least-once vs exactly-once), idempotency, failure handling and deduplication, monitoring and alerting, multi-tenant isolation, and horizontal scaling to high throughput. Consider persistence, durability, and strategies for multi-region deployment.

Quick Answer: This question evaluates competency in designing scalable, durable distributed job schedulers, covering multi-tenant architecture, queuing and metadata persistence, execution semantics, idempotency, retries/dead-lettering, failure handling, and observability.

|Home/System Design/Applied Intuition
Applied Intuition logo
Applied Intuition
Sep 6, 2025, 12:00 AM
hardSoftware EngineerOnsiteSystem Design
31
0

Design a Scalable Distributed Job Scheduler

Context

Design a multi-tenant, horizontally scalable job scheduler for backend services. The system must persist jobs durably, survive failures, and support high throughput. It will run in the cloud and integrate with a durable queue and a replicated metadata store.

Requirements

  • Functional
    1. Job types: immediate, delayed (schedule at/after time), recurring (cron-like), and jobs with dependencies (DAG).
    2. Priorities (e.g., high, medium, low) with fair-share across tenants.
    3. Retries with configurable backoff and jitter; dead-lettering.
    4. Core APIs: submit, cancel, pause, resume, status (and list/filter optional).
    5. Execution semantics: at-least-once by default; discuss how to approach exactly-once.
    6. Idempotency, failure handling, deduplication.
  • Non-Functional
    1. Persistence and durability of both metadata and queues.
    2. Monitoring, alerting, and observability.
    3. Multi-tenant isolation, quotas, and security.
    4. Horizontal scaling to high throughput and low scheduler latency.
    5. Multi-region deployment and failover.

Deliverables

  • System components: API layer, scheduler/dispatcher, queues, workers/executors, metadata store.
  • Data model for jobs, attempts, dependencies, and queues.
  • API design for submit, cancel, pause, resume, status.
  • Discussion of execution semantics, idempotency, failure handling/dedup, monitoring/alerting, multi-tenant isolation, horizontal scaling, durability, and multi-region strategies.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...