Multi-tenant job scheduling

DesignHard45 min

Your task

Design traffic shaping for a multi-tenant async job platform (think a hosted CI or data-pipeline service). One large tenant must not starve smaller tenants, latency-sensitive jobs should jump ahead of big batch jobs, and the system must absorb bursts without unbounded queue growth. You have a pool of workers consuming from queues. Design the queuing/scheduling so it's fair, prioritized, and bounded.

It covers

  • Fair queuing
  • Priority
  • Backpressure