6.3 Remote Execution Infrastructure

Sections in this chapter · 19

6.3.1Making Actions Work Remotely

Audit action classes for remote execution, route contract gaps to repairs or explicit local exceptions, and require remote-only proof before fleet acceptance.

6.3.2Remote Executor Matching

Preserve Bazel's execution-platform and toolchain intent through backend-specific pool routing, then prove compatible placement and visible rejection.

6.3.3Choosing a Remote Execution Backend

Select reversible remote-execution candidates from a versioned workload contract, client/REAPI/backend evidence, and must-have requirements with explicit exit conditions.

6.3.4Remote Action Tracing

Reconstruct one successful remote attempt from portable Execute/Operation evidence and backend-owned queue, lease, executor, and completion observations.

6.3.5Remote Execution Architecture

Map a remote action onto deployable roles, typed paths, operating owners, and failure domains without confusing backend topology with REAPI.

6.3.6Remote Execution State and Recovery

Classify each remote-execution state population by its declared recovery contract and measured rebuild cost, then prove the plan through component-loss tests.

6.3.7Remote Execution Storage

Follow remote inputs through availability checks and outputs through CAS upload and ActionResult publication without publishing a dangling or incomplete result.

6.3.8Scheduling Actions on Remote Executors

Use this when already matchable actions queue, starve, or bypass apparently available compatible capacity.

6.3.9Remote Executor Environments and Isolation

Use this when ensuring an action runs in the promised environment without inheriting files, processes, credentials, or residue from another action.

6.3.10Remote Input Presentation

Choose and qualify the worker's eager or lazy presentation of an already-available Merkle/CAS input closure.

6.3.11Remote Output Availability

Use this when choosing which outputs Bazel downloads while ensuring tests, IDEs, CI, humans, and later consumers can still obtain required files.

6.3.12Remote Execution Capacity

Use this when executor count or average CPU looks healthy while compatible action classes still queue or starve.

6.3.13Remote Action Failure Handling

Use this when remote actions are slow or fail and recovery must avoid retry storms, duplicate accepted results, lost evidence, or untrusted outputs.

6.3.14Multi-Tenant Remote Execution

Use this when several teams or trust domains share remote execution without reading, poisoning, leaking, or starving one another.

6.3.15Multi-Region Remote Executionextra

Place remote actions, complete AC/CAS data, matchable capacity, and output consumers across regions, then define safe partition and region-loss behavior.

6.3.16Action Deduplication and Racingextra

Use this when reducing duplicate work or tail latency without accepting two results or wasting uncontrolled capacity.

6.3.17Remote Execution Upgrades

Use this when draining workers, changing component versions or images, rolling back, or restoring service after a planned transition fails.

6.3.18Remote Execution Production Readiness

Use this when a successful staging build exists but you need to decide whether the whole deployment is safe and operable for production workloads.

6.3.19Local REAPI Developmentextra

Use a local VM-backed REAPI executor to expose host assumptions, exercise remote-only client paths, and share AC/CAS state without treating one machine as a production RBE deployment.