router overhead — rolling p95: 11ms. Illustrative model, not measured results.

Four lines, a DNS record, or nothing at all.

Three ways in, ordered by how much of your stack you have to touch. The one we suggest starting with touches none of it and changes no answer your users see.

Three ways in

A

SDK shim

Your existing client library keeps its call signatures; requests go to Switchyard and come back in the shape they already came back in. The endpoint name is what ties a call to a ladder, a floor and a budget, so it is the one argument you have to add.

What you change

Swap base_url, name the endpoint. About four lines.

How you back out

Point base_url back. No data migration, no schema change.

B

Compatible gateway

The gateway speaks the same wire format your application already speaks. Endpoints are derived from the path, which is coarser than naming them yourself, but it gets a service you cannot rebuild onto a ladder this week.

What you change

No code change. A DNS record or a reverse-proxy rule.

How you back out

Revert the record. Propagation is your normal TTL.

C

Shadow only

Requests are copied, fingerprinted and scored against candidate ladders offline. Your users keep getting answers from your current setup. At the end you have your own traffic’s difficulty distribution and a modelled bill instead of ours — which is the honest way to find out whether any of this applies to you.

What you change

Mirror traffic. Nothing is routed, nothing is returned.

How you back out

Stop mirroring. Nothing in your path ever changed.

Start with C. It is the only one of the three that cannot hurt you, and it is the one that produces an argument.

Where the data goes

Five hops, and the first one never leaves your side. The fingerprint is computed in your process or your VPC, which means the request text is scored without being shipped anywhere to be scored.

Where the data goesFIG-11ILLUSTRATIVE
Inside your networkLeaves your network01RequestYour application02FingerprintYour process or your VPC03DecisionSwitchyard04Upstream callYour provider05Judge samplingSwitchyard, 6% of calls
Illustrative model · FIG-11 · one request through five hops; the shaded segment is the only part that leaves your network
Where the data goes
HopRunsWhat lands on disk
RequestYour applicationNothing of ours.
FingerprintYour process or your VPCFive axis scores and D. Not the text.
DecisionSwitchyardChosen tier, the path through the tree, the reason for each edge.
Upstream callYour providerToken counts, latency per rung, errors. Bodies pass through.
Judge samplingSwitchyard, 6% of callsA score and its basis.

What we keep

Stored by default

  • The fingerprint vector — five axis scores and D.
  • The routing decision, the path through the tree, and the reason for each edge.
  • Token counts, cost and latency, per rung.
  • The judge score, on the sampled calls.
  • Errors, timeouts and schema failures.

Not stored by default

  • Prompt bodies.
  • Completion bodies.
  • End-user identifiers.

Body retention is opt-in, per endpoint, with a window you set. Off is the default and stays the default until you turn it on — a routing layer that quietly accumulated everyone’s prompts would be a liability wearing a product’s clothes.

Where it runs

Hosted
We run the router. Your fingerprint classifier still runs on your side.
Self-hosted
Everything in your infrastructure. Ladders are files; the control plane is optional.
In your VPC
We operate it inside your network boundary. Upstream credentials never leave it.

SLO targets

Design targets for this illustrative deployment, stated so they can be measured and argued with. They are not service commitments, and there is no SLA on this site.

SLO targets
MetricTarget
Routing availability99.95%
Added overhead, p95≤ 15 ms
Brownout detection≤ 60 s

Migration playbook

Four steps, each with a switch that puts you back where you started.

Migration playbook
StepWhat happensRollback
Weeks 1–2Shadow only. Your traffic’s difficulty distribution and a modelled bill, nothing routed.Stop mirroring.
Week 3One endpoint at 5%. Pick the one with the most routine traffic, not the most expensive one.Set the share to zero. Takes effect on the next request.
Weeks 4–7Ramp that endpoint 25% → 100%, then the next endpoint. One at a time.Per-endpoint share, same switch.
OngoingNew tiers enter through the shadow and the swap window, never straight into production.Promotion is reversible at every ramp step.

Next

What we refuse to do.

Read the stance