Managing Long Running Tasks hard
If your worker pool is overwhelmed and the queue is growing by 10k messages/second, what is the best 'Backpressure' strategy?
- A Crash the producer.
- B Reject new tasks at the Producer level (HTTP 429 Too Many Requests) until the specific queue size drops below a threshold.
- C Increase the timeout.
- D Use a bigger database.
Answer: B. Reject new tasks at the Producer level (HTTP 429 Too Many Requests) until the specific queue size drops below a threshold.
Infinite queuing leads to valid requests timing out before they are ever processed. Better to shed load.
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?