Load balancing
The Drawbridge
The Drawbridge is a list of your origin servers. Zipper checks they answer. If one is sick, traffic goes to the others. You can weight them and keep a visitor on the same origin. This is a Cloudflare Cloudflare Load Balancing alternative included on every Zipper plan.
Cloudflare analogue: Cloudflare Load Balancing
What it is
The Drawbridge is a list of your origin servers. Zipper checks they answer. If one is sick, traffic goes to the others. You can weight them and keep a visitor on the same origin.
Cloudflare analogue: Cloudflare Load Balancing. SLA 99.99% · p99 15ms. Admins add origins. Unhealthy origins are removed automatically.
- ▸Health checks
- ▸Weighted pools
- ▸Sticky sessions
- ▸Fails over by itself
How it works
Origins share traffic by weight, geo, least-outstanding, or failover.
Health checks run from the edge. Unhealthy origins drop out automatically.
Use cases
Concrete ways teams use this service on day one.
Active-active primary + secondary
Two healthy origins, primary weighted higher.
- Add Origin primary weight 70, Origin secondary weight 30. Steering: weighted. Failover on.
Set it up in the dashboard
Dashboard → Services → The Drawbridge. Add origins. Session affinity cookie if the app is sticky.
API
Control-plane: GET|POST|DELETE /api/v1/drawbridge/origins. Send Authorization: Bearer tz_live_YOUR_TOKEN.
Creates count against the plan quota. A 402 plan_limit means you are at the cap — upgrade or delete an unused resource.
Add an origin
curl -sS -X POST https://tinyzipper.com/api/v1/drawbridge/origins \
-H "Authorization: Bearer tz_live_YOUR_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name":"Origin primary","address":"origin.example.com:443","weight":70}'List the same resource in JavaScript
const res = await fetch("https://tinyzipper.com/api/v1/drawbridge/origins", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.ZIPPER_TOKEN}`,
"Content-Type": "application/json"
}
});
const json = await res.json();
if (!res.ok) throw new Error(json.error ?? res.statusText);
console.log(json);Tips
Free allows one origin. Starter allows three. Business is for real multi-origin.
- ▸SOC 2
- ▸ISO 27001
Runbook
Keep two healthy origins in the origin pool. Failover is automatic. Add another Global Server node from Fleet later.
Next: The Gallery · All docs · Create a free account