Back to problems

Design a CI/CD Job Scheduler

System Design · Cursor · Hard

High-Level Goals Design a CI/CD control plane that accepts pipeline DAGs, schedules jobs only when all their dependencies succeed, allocates jobs to workers according to multi-tenant fair-share rules, survives crashes of both schedulers and workers, and retries failed jobs without duplicating side effects. The system uses at-least-once execution because exactly-once is impossible in a distributed system with remote workers. Idempotency is pushed to the edges: every external…

Checking your access…