high merge volume

A hundred merges a day, and none of them tested nothing.

Two bad options dominate at scale: build the world on every change and watch the queue grow, or build the diff and let cross-repo breakage through. Reverse-dependencies from the real module graph give you the third — build exactly what the change can reach, and refuse to call it green when it reached nothing.

Build what the change reaches — not the world, not the diffCross-repo breakage is followed through the module graphThe four capacity numbers, live from your own PrometheusA build that reached nothing is blocked, not mergedAn inspectable image per commit, addressed by content
the scaling wall

Both obvious answers are wrong.

One is too slow to keep up; the other is fast and lets breakage through.

Build everything on every change and correctness is easy — but the queue grows with merge rate, and past a point the feedback arrives after the next three changes have already landed on top.

Build only what the diff touches and it's fast — but the interesting failures were never in the diff. They're two repositories away, in something that depended on a behavior nobody wrote down.

The third answer needs a real graph: every target that transitively depends on what changed, followed across repository boundaries, computed per push. That's a much smaller set than the world and a much larger one than the diff, and it's the only one that is both fast and honest.

reverse-deps
how the target set is chosen
from the real graph, across repos
hermetic
so the cache is real
same inputs, same outputs
4 numbers
what you tune under load
cache · workers · queue · latency
blocked
a build that reached nothing
assess_merge won't call it green
capacity

When merges outpace the cluster.

The signals that tell you which lever to pull, from the Prometheus your remote execution already exposes. Values illustrative.

Under load live
Buildbarn RBE · PromQL, read-only
signalnowthe lever it points at
cache hit rate 68.2% hermeticity — something is leaking non-determinism
queue depth 214 worker count, or the size of the target set
worker saturation 0.97 scale out — there is no headroom left
p99 action latency 31.4s the tail, which is what sets wall-clock
reading it: a falling cache hit rate raises every other numberhonesty: no Prometheus? panels go empty — never a fake number
vs the two easy answers

Fast and honest, not one or the other.

The comparison worth making is against the strategies, not a product.

reverse-dependency scoping
build-everything or build-the-diff
Correctness
Everything the change can reach
Complete, or incomplete
Cost per merge
Proportional to reach
Constant, or too small
Cross-repo breakage
Followed through the graph
Caught late, or missed
Queue under load
Scales with real reach
Grows with merge rate
A vacuous green
Blocked
Indistinguishable from a pass

Blast radius is reverse-dependencies, computed from the real graph on every push — not a path glob someone wrote once and stopped maintaining.

plugin-tbzl · graph-scoped builds
what this rests on

Backed by shipping plugins.

Each claim on this page is anchored to a plugin that provides it. The site build resolves these cross-references against the live feature catalog and fails if one of them doesn't exist — so this list can't quietly outlive what the platform ships.

related

Adjacent problems.

Prove it's safe to merge.

Hosted, or launched into your own AWS account. Start free — no card required.