Fictional example. A shop application calls two external services: one calculates delivery prices and the other generates reports for sellers. Both use the same pool of 40 outbound connections and the same worker queue.
When reporting slows down, its requests wait 20 seconds and occupy most of the pool. Customers cannot complete orders, even though the delivery pricing service responds normally. The team proposes doubling the pool and retrying every call three times. You do not yet know the traffic distribution or agreed response targets for either function.
How will you stop reports from affecting checkout? What limits, overload behaviour and measurements will you define before changing the connection count?
Guiding questions
- Which resources are actually shared and may be exhausted?
- Do reports and checkout have the same priority and response-time target?
- What happens to traffic when every slow request is retried three times?
- How will you show that isolation works when one provider slows down?