Anatomy of the system
Five orbits. One gravity.
Each capability sits in its own orbit but pulls on the same core: one config, one deploy, one bill. Scroll the system.
ORBIT 01 · 4.7 ms cold start
Edge Functions
Deploy TypeScript to every point of presence with one command. Requests land on the nearest node and start in under five milliseconds.
- 312 points of presence, 14 core regions
- Streaming responses and WebSockets
- Region pinning for data residency
export default {
async fetch(req, env) {
const geo = req.cf.city;
return Response.json({ hello: geo });
},
};
ORBIT 02 · 38 ms p99 fan-out
Realtime Sync
Presence, live cursors and conflict-free documents over a single socket. Subscribe to a query and the diff arrives before the user blinks.
- CRDT documents with offline merge
- Presence for 100k concurrent viewers
- Typed channels, generated from your schema
const room = orbit.room("doc:42");
room.on("presence", (peers) => draw(peers));
room.doc.text("body").insert(0, "Hello");
ORBIT 03 · 1 trace, 0 config
Observability
Traces, logs and metrics are correlated by default. Click a slow span and jump straight to the log line, the deploy and the commit that caused it.
- Automatic distributed tracing
- 30-day retention on every plan above Probe
- Alerts that open with the failing trace attached
$ orbit trace --slow 400ms
▸ POST /checkout 612ms
├ auth.verify 8ms
├ db.query 481ms ← orders_by_user
└ queue.publish 12ms
Auth & Access
Passkeys, SSO and row-level policy declared next to your code. Roles are evaluated at the edge, so a denied request never reaches your database.
- Passkeys, magic links, OIDC and SAML
- SCIM provisioning for Station and above
- Policies tested in CI with orbit policy test
policy("orders", {
read: (u, row) => row.owner === u.id,
write: (u) => u.role === "admin",
});
ORBIT 05 · 0 lost messages
Queues & Cron
Durable queues with exactly-once delivery, retries with jitter and cron triggers that survive deploys. The innermost orbit, closest to your data.
- Exactly-once delivery with idempotency keys
- Dead-letter inspector and one-click replay
- Cron with timezone and DST awareness
queue("emails").process(async (job) => {
await send(job.data);
}, { retries: 5, backoff: "jitter" });