Skip to content
Queueing network templates

Queueing Network — Fleet Telemetry Ingest

A 4,000-message-a-second vehicle telemetry pipeline across gateway, decoder, enrichment, a bounded rule engine pool and column storage, with a replay loop from the dead-letter path back into decoding.

Template previewQueueing network
Connected vehicle telemetry — ingest at peakOpen queueing network · 6 stations · 9 routes · arrivals 4000/s · target ρ 80%10.960.0410.880.7 back4000/sarrivalsexit 0.121exitexit 0.3Edge gateway×22λ 4000/s · ρ 72.7%Wq 0.1ms · Lq 0.3W 4.1ms · L 16.3M/M/22 · P(wait) 11.1%Protobuf decoder×48λ 4115/s · ρ 77.2%Wq 0.1ms · Lq 0.23W 9.1ms · L 37.27G/G/48 · P(wait) 5.7%Geo enrichmentbottleneck×90λ 3951/s · ρ 79%Wq 0ms · Lq 0.16W 18ms · L 71.27G/G/90 · P(wait) 2%Dead letter replay×10λ 165/s · ρ 74.1%Wq 5ms · Lq 0.83W 50ms · L 8.23M/M/10 · P(wait) 29%Rule engine×160λ 3951/s · ρ 74.1%Wq 0ms · Lq 0W 30ms · L 118.52M/M/160/400 · blocked 0%Column store write×70λ 3477/s · ρ 69.5%Wq 0ms · Lq 0.01W 14ms · L 48.68M/M/70 · P(wait) 0.3%StationModelcK1/μλλ effaρP(wait)P(block)LqWqLWEdge gatewayM/M/2222∞4ms4000/s4000/s1672.7%11.1%0%0.30.1ms16.34.1msProtobuf decoderG/G/4848∞9ms4115/s4115/s37.0477.2%5.7%0%0.230.1ms37.279.1msGeo enrichmentG/G/9090∞18ms3951/s3951/s71.1179%2%0%0.160ms71.2718msDead letter replayM/M/1010∞45ms165/s165/s7.4174.1%29%0%0.835ms8.2350msRule engineM/M/160/40016040030ms3951/s3951/s118.5274.1%0%0%00ms118.5230msColumn store writeM/M/7070∞14ms3477/s3477/s48.6769.5%0.3%0%0.010ms48.6814msBottleneck: Geo enrichment at ρ = 79% on 90 servers — already inside the 80% target; the network is balanced.Offered 4000/s · throughput 4000/s · L 300.27 in system · W 75.1ms end to end · 6 stationsStable — every station holds ρ below 1. Network response time is Little's law on the solved flows: W = L / throughput.

Make it your own.

title "Connected vehicle telemetry — ingest at peak"
target 80%
rate unit /s
arrivals "Edge gateway" 4000/s

station "Edge gateway"      { servers: 22;  service: 4ms }
station "Protobuf decoder"  { servers: 48;  service: 9ms;  cv: 1.2 }
# Enrichment does a geospatial lookup whose tail is dominated by cache
# misses on rarely visited tiles.
station "Geo enrichment"    { servers: 90;  service: 18ms; cv: 1.8 }
# The rule engine pool is bounded: work beyond it is shed to the replay
# topic rather than queued, so this station is M/M/c/K.
station "Rule engine"       { servers: 160; service: 30ms; capacity: 400 }
station "Column store write"{ servers: 70;  service: 14ms }
station "Dead letter replay"{ servers: 10;  service: 45ms }

route "Edge gateway" -> "Protobuf decoder" 1.0
route "Protobuf decoder" -> "Geo enrichment" 0.96
route "Protobuf decoder" -> "Dead letter replay" 0.04
route "Geo enrichment" -> "Rule engine" 1.0
route "Rule engine" -> "Column store write" 0.88
route "Rule engine" -> exit 0.12                    # suppressed duplicates
route "Column store write" -> exit 1.0
route "Dead letter replay" -> "Protobuf decoder" 0.7
route "Dead letter replay" -> exit 0.3