Start hereTry itAgentsArchitectureMechanismsResultsGlossaryRelated workSpikeChangelogContributingSecurity

Round 4 scale runs on a preview deployment, 2026-10-13

Measured on Workers preview p18 (its own Durable Objects; Artifacts namespaces shared with production) with the round-4 code (FT_INLINE, FT_VIRTUAL_CHECKOUT, FT_CULPRITS and FT_DELETION_GUARD on; FT_ASYNC_PUBLISH per run). One colony, p18-scale2: created empty with 64 regions (region depth 2), a workspace pool of 6,000 forks, review off. Synthetic API agents (no model calls, no work time), 120 s runs with a 10 s ramp; landings per minute are counted from the live landing feed between 25 s and 120 s. Driver: packages/bench/src/live.ts. summary.json collects the runs.

What the modes mean:

In the order they ran, all on the same colony:

File Mode Agents Landings/min Landed in the run Time to land p50 / p90 Trunk cycle p50 Of it, reading changes p50 Push p50 Failed calls
base-n1000.json git path, sync 1,000 1,626, intents ran out 3,000 of 3,000 15.6 / 21.9 s 4.3 s 3.2 s 0.6 s, in the cycle 0 of 27,816
inline-n1000.json inline, sync 1,000 1,433, intents ran out 3,000 of 3,000 9.9 / 12.5 s 2.8 s 0.6 s 1.6 s, in the cycle 0 of 28,469
base-n5000.json git path, sync 5,000 1,821 3,761 19.1 / 25.0 s 5.1 s 3.9 s 0.8 s, in the cycle 666 of 55,965
inline-n5000.json inline, sync 5,000 3,842 7,485 10.7 / 14.7 s 2.8 s 0.9 s 1.6 s, in the cycle 603 of 48,932
inline-async-n5000-fullwalk.json inline, async (first take check, 068b5df) 5,000 3,776 7,502 8.0 / 20.8 s 1.8 s 1.2 s 10.7 s, beside the cycle 568 of 52,739
inline-async-n5000.json inline, async (c16c1fa) 5,000 2,759 5,662 8.2 / 28.1 s 2.5 s 2.0 s 6.3 s, beside the cycle 456 of 51,961

Nothing was returned in any run. Failed calls were the load generator's own (fetch failed: connection resets, connect timeouts and DNS failures, from one machine driving 5,000 agents) except where noted below.

What it shows:

The other runs:

Reproduce (needs an admin token for the deployment in FT_TOKEN; a fresh colony with regionDepth: 2 and poolTarget: 6000, review off with POST /api/colonies/<id>/decide/policy {"enabled":false}):

FT_URL=https://<deployment> node packages/bench/src/live.ts --colony <id> --agents 5000 --duration 120 \
  --expect-publish sync --out base-n5000.json
FT_URL=https://<deployment> node packages/bench/src/live.ts --colony <id> --agents 5000 --duration 120 \
  --inline --expect-publish sync --out inline-n5000.json
# with FT_ASYNC_PUBLISH listing the colony, once its trunk writer reports publish.on:
FT_URL=https://<deployment> node packages/bench/src/live.ts --colony <id> --agents 5000 --duration 120 \
  --inline --expect-publish async --out inline-async-n5000.json

In this folder