Distributed Task Execution (DTE)
Lerna (via Nx) supports running commands across multiple machines. You can either set it up by hand (by using batching or binning) or use Nx Cloud.
When using distributed task execution, Lerna (via Nx) is able to run any task graph on many agents instead of locally.
> npx lerna run build won't run the builds locally (which can take hours for large workspaces). Instead,
it will send the Task Graph to Nx Cloud. Nx Cloud Agents will then pick up the tasks they can run and execute them.
Note that this happens transparently. If an agent builds
remixapp, it will fetch the outputs for
if it doesn't have them already.
As agents complete tasks, the main job where you invoked
> npx lerna run build will start receiving created files and
> npx lerna run build completes, the original machine will have the build files and all the terminal outputs as if it ran
This is an example repo showing how easy it is to set up distributed task execution, showing the performance gains, and comparing to sharding/binning.