Reproducing a concurrency bug usually demands hours of speculative logging and thread schedule wrestling. Building a deterministic time-travel debugger typically stalls on one massive hurdle: collecting the precise source code, debug symbols, environment flags, and dynamic library dependencies across every single layer of the target system.
It turns out a hermetic build system already solves the hardest half of the problem. Because a Nix derivation defines program inputs as a pure mathematical function, a deterministic virtual machine can reconstruct the exact execution universe automatically.
By feeding Nix derivations into a deterministic scheduling VM, the debugger can step through thread interleavings, inspect thread run queues, and pinpoint the exact instruction where a shared balance overwrites stale state. You do not need to instrument the entire runtime manually when your package manager guarantees reproducibility from the kernel boundary upward.
Treating execution context as build artifacts transforms intermittent race conditions into repeatable, deterministic test cases.






