Queueing Network — CI Build Farm
Merge-queue pipeline at six jobs a minute with flaky-test retry loops from both suites, showing how a 90-slot integration executor pool, not the forty compile workers, is the station that touches the 80% target.
Make it your own.
title "CI build farm — merge queue at peak"
target 80%
rate unit /min
arrivals "Job queue" 6/min
station "Job queue" { servers: 2; service: 8s }
# Compile time depends on cache hit rate, hence cv 1.7.
station Compile { servers: 40; service: 4m30s; cv: 1.7 }
station "Unit tests" { servers: 30; service: 3m10s; cv: 1.25 }
# The integration pool is capped at ninety concurrent environments; jobs
# beyond that are rejected by the scheduler rather than queued forever.
station "Integration tests" { servers: 60; service: 9m; capacity: 90 }
station "Artefact publish" { servers: 4; service: 35s }
route "Job queue" -> Compile 1.0
route Compile -> "Unit tests" 0.93
route Compile -> exit 0.07 # compile failures leave
route "Unit tests" -> "Integration tests" 0.85
route "Unit tests" -> Compile 0.04 # flaky retry, rebuilt
route "Unit tests" -> exit 0.11
route "Integration tests" -> "Artefact publish" 0.79
route "Integration tests" -> "Unit tests" 0.09 # re-run a flaky suite
route "Integration tests" -> exit 0.12
route "Artefact publish" -> exit 1.0