Managing Long Running Tasks easy
Why use a separate 'Worker' process instead of running the task inside the Web Server thread?
- A Workers are cheaper.
- B Web Servers cannot do math.
- C To keep the Web Server responsive to new incoming requests. Heavy CPU/IO tasks block the Event Loop or consume thread pool threads, causing lag for other users.
- D To use less memory.
Answer: C. To keep the Web Server responsive to new incoming requests. Heavy CPU/IO tasks block the Event Loop or consume thread pool threads, causing lag for other users.
Web Servers should just handle HTTP IO. Background workers handle business logic calculation.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- What is the primary purpose of a Dead Letter Queue (DLQ)?
- The architectural pattern where one service creates tasks and another processes them is called:
- In a Priority Queue system (High vs Low), what is 'Starvation' and how do you fix it?
- How do you atomically update your local database AND publish a message to a queue without losing sync if the process crashes in between?
- What does 'Fire and Forget' mean?
- Why might you 'Throttle' (limit the speed of) your background workers?