◇ Math reference · Part 05
M/M/c/K — bounded queues
What happens when the queue can't grow forever — when excess load gets rejected instead of waiting.
c servers, Poisson arrivals, exponential service — same as M/M/c — but the queue holds at most K requests. Arrivals that find the queue full are rejected (returns 503, drops the message, raises a thread-pool-full exception).
This is the right model for systems with explicit back- pressure: rate-limited APIs, fixed-size thread pools, bounded SQS-style queues, bulkheads in resilience libraries. The metric of interest isn't just wait time — it's the blocking probability, the fraction of arrivals that get rejected.
Closed-form expressions for arbitrary c and K are tedious to write inline but cheap to evaluate numerically — the engine builds the Markov chain for the chosen (c, K) pair and solves for the stationary distribution.
When to use it
- Rate-limited endpoints where excess requests return 429 / 503
- Fixed-size database connection pools
- SQS queues with a maximum message count
- Any system that explicitly drops on overflow