DEV Community

Cover image for No daemon, and still quick when nothing changed
VX
VX

Posted on Edited on Originally published at vznjs.github.io

No daemon, and still quick when nothing changed

vx runs no background process. When nothing changed, a run over 9,603
tasks still finishes in 720 ms.

Runner Nothing changed Daemon
vx 720 ms none
Turborepo 1.05 s not for turbo run
Nx 26.21 s off, as in CI

Synthetic monorepo, 1,601 projects, 9,603 tasks · linux x64, 4 cores, concurrency 10 · vx 0be036747, Turborepo 2.11.10, Nx 24.0.1 · 2026-10-23 · benchmarks

Nx runs a daemon by default. Turborepo shipped one and, since 2.8.11,
no longer uses it for turbo run.

A daemon can be wrong

diagram

A daemon keeps its own copy of your tree. One missed file event and that
copy is wrong. For a build cache, wrong means old bytes under a green
check.

vx reads the tree fresh, every run

diagram

Each run asks git, which already holds a hash for every clean file. A
clean tree is keyed with no read of a source file
(how). Config comes from the lock file, so no
vx.config.ts is evaluated. A hit on an up-to-date tree only checks that
the outputs are there (how).

That is the 720 ms. Nothing stays running after it, and a run in a
terminal, in CI or in a container gives the same answer.

More at vznjs.github.io/vx.


Originally published on the vx blog. vx is open-source (MIT) task orchestration with a build cache: vznjs.github.io/vx · GitHub.

Written with AI assistance.

Top comments (0)