Design an in-process background job service
PremiumMachine codingHard
- Job queue
- Visibility timeout
- Exponential backoff
Quick answer
This machine coding interview question asks you to design an in-process background job service. Aim for a design that meets its requirements at the stated scale, then explain its main components, data flow and trade-offs. Interviewers want to see how you scope the problem, size it and defend each choice.
The problem
Build an in-process background job service, a small version of the job libraries web apps use to send emails or resize images later. Code enqueues typed jobs; worker threads run them by priority. The hard part is that workers crash or hang, so every claimed job needs a lease, retries and a way to spot stuck work.
You may use a coding assistant. Keep a short PLAN.md, commit after each working step, and write concurrency tests. At minute 70 the interviewer adds a new requirement.
What must an in-process background job service do?
- Enqueue: enqueue(type, payload, {priority, runAt?, maxAttempts = 5}) returns a job id; priority is HIGH, MEDIUM or LOW, and runAt delays the job.
- Leases: a claim gives the worker a 30-second lease and a lease id; heartbeat renews it, and an expired lease returns the job to the queue as a failed attempt.
How well must it do it?
- No lost or doubled work: Each job is held by at most one live lease, and a worker whose lease expired cannot complete the job.
- No starvation: A LOW job waiting more than 2 minutes is treated as MEDIUM, and a MEDIUM job waiting 2 minutes as HIGH.
What scale should you design for?
Use these numbers in your estimates.
The scale numbers unlock with this questionUnlock
Key concepts
- Job queue
- Visibility timeout
- Exponential backoff
- Dead letter queue
- Priority scheduling
- Lease renewal
How you’ll practise
- Requirements
- Entities and interfaces
- Core implementation
- Edge cases and tests
- Extensions
- Wrap-up
Lala, personalized to you, gives a hint when you ask and reviews your design when you are ready.
What do interviewers look for?
In any machine coding design round.
- Clarifies the requirements before drawing anything
- Uses a few numbers that actually change the design
- Draws a clear path from the client to storage
- Picks storage and caching with reasons, not by habit
- Explains what breaks first under load and how to fix it
- States trade-offs openly instead of claiming a perfect design
Questions people ask about this interview question
- Which design type is this question?
- It is a machine coding question. You design an in-process background job service and explain your choices the way you would in an interview.
- Is this question asked at entry level?
- It is marked Hard. It suits engineers preparing for senior interviews, where you are expected to drive the discussion and go deep on trade-offs.
- What should I cover first?
- Start with the requirements: what the system must do, how well it must do it and which numbers change the design. Agree on scope with the interviewer before you design anything.
- Can I practise it for free?
- It is a premium question. Sign up and unlock it once for 10 credits; it then stays unlocked. When you finish, Lala, your personalized AI mentor, can review your design for 30 credits.
Related questions
Updated · Written by the SevyDevy team