Business & Operations
Jackson Open Queueing Network: Total WIP & End-to-End Sojourn Time
Analyze multi-station M/M/1 manufacturing, hospital, or microservice networks with rework loops using Jackson's Theorem: L = SUM(lambda_i / (mu_i - lambda_i)) and Little's Law W = L / gamma_ext.
Account for internal rework and routing loops across multi-stage queues!
In wafer fabs, emergency departments, and cloud microservices, jobs rarely pass straight through once—rework loops and branching mean each station i sees an effective total arrival rate lambda_i (including routed internal traffic) that can exceed external network arrivals gamma_ext! James R. Jackson proved a miraculous product-form theorem: as long as every station is stable (lambda_i < mu_i), each single-server exponential node behaves in steady state like an independent M/M/1 queue with local WIP Li = rho_i / (1 - rho_i) = lambda_i / (mu_i - lambda_i)!
Summing local WIP across all K stations gives exact total jobs in the network L = SUM(Li), and applying Little's Law at the network boundary divides total WIP L by external throughput gamma_ext (NOT SUM(lambda_i)!) to yield average end-to-end customer sojourn time W = L / gamma_ext! Across 3 nodes [(12, 20), (9, 15), (8, 16) jobs/hr] serving gamma_ext = 10 external orders/hr, Li = 1.5 + 1.5 + 1.0 = 4.0 jobs and end-to-end lead time is W = 4.0 / 10 = 0.40 hr (24 minutes)!
| Network Station | Effective Arrival lambda_i | Service Rate mu_i | Station WIP Li = lam/(mu - lam) |
|---|---|---|---|
| Node 1: Triage / API Gateway | 12 jobs/hr (incl. retries) | 20 jobs/hr (rho = 0.60) | 12 / (20 - 12) = 1.50 jobs |
| Node 2: Core Processing | 9 jobs/hr | 15 jobs/hr (rho = 0.60) | 9 / (15 - 9) = 1.50 jobs |
| Node 3: QA / Inspection | 8 jobs/hr | 16 jobs/hr (rho = 0.50) | 8 / (16 - 8) = 1.00 job (Total L = 4.0) |
Station Queue + In-Service WIP Li = lambda_i / (mu_i - lambda_i) (With Stability Guard)
Checks ergodicity lambda_i < mu_i at each node; if lambda_i >= mu_i, that bottleneck queue explodes to infinity!
=IF(OR(B2 < 0, C2 <= B2), "Unstable Queue (lambda >= mu)", ROUND(B2 / (C2 - B2), 3))Network End-to-End Sojourn Time W = SUM(D2:D4) / External_Arrival_Rate
Divides total multi-node WIP SUM(D2:D4) by external throughput gamma_ext in B5 via Little's Law.
=IF(B5 <= 0, "Invalid External Rate", ROUND(SUM(D2:D4) / B5, 3))Try the example
Use the original values or change them to test your understanding.