switchyard

Tradeoffs

What Switchyard is not good at yet, with the numbers we measured. We update this page when the numbers change.

One main is one queue

Every workspace merges into one main through one merge queue, so throughput is bounded by how long checks take. The queue tests several workspaces together and keeps going when one fails, but a project with slow checks and hundreds of workspaces waits.

RunWorkspacesChecks per workspaceMergedTime from submit to merged (median)
12 October 20261,00060 s998 of 998 submitted28 min
13 October 202610060 s100 of 1002.7 min

Storage is changing

Workspaces live in Cloudflare Artifacts today, one repository per workspace. Creating one took 6.3 s at the median and 14 s at the 95th percentile in our 13 October run of 100 workspaces. We are moving to our own Git storage on Cloudflare R2, where the same step took 1.3 s; it becomes the default once our 1,000-workspace and recovery tests pass.

Code-aware warnings cover six languages

Warnings about symbols and dependencies ("workspace B calls a function workspace A is changing") work for TypeScript, TSX, JavaScript, Python, Rust and Go. Other files get line-level overlap warnings only.

Some conflicts still need a person

Deterministic recipes clear common conflicts (lockfiles, JSON, imports). A conflict that needs judgement goes to a person; resolving with a model is not offered yet. Binary files are never merged line by line.

One repository per project

A change cannot span several repositories, and there is no pull-request flow of our own: a project either owns its main or follows one GitHub repository.

Private beta

Sign-in is with GitHub only, for approved accounts. Email sign-in comes later.