# UmamiEdge Global Scale Operator Guide

This guide explains how to operate UmamiEdge as a global distributed AI compute grid without relying on public release-number branding.

## Operating model

UmamiEdge should be run as regional corridors, not as one flat pool of nodes.

Recommended control dimensions:

1. **Region / corridor** — APAC, Africa, EU, MENA, North America, or customer-defined regions.
2. **Residency policy** — allowed countries, blocked countries, regulated workload constraints, audit requirements.
3. **Node group** — commercial sites, colocation rooms, telecom edge sites, campus nodes, private enterprise nodes.
4. **Runtime group** — vLLM, Ollama, TGI, embeddings, vision, document AI, SOC inference.
5. **Customer tier** — pilot, enterprise, sovereign/private grid.
6. **SLA policy** — uptime target, p95 latency target, escalation window, failover rule.

## Global rollout sequence

1. Connect two or three controlled commercial nodes in one corridor.
2. Register node API keys and verify telemetry ingestion.
3. Connect one OpenAI-compatible runtime.
4. Run routing simulations against latency, capacity, and residency policies.
5. Add one committed-capacity customer.
6. Add site-owner reporting and payout estimate.
7. Run failover drill and capture evidence.
8. Expand to the second region only after billing, telemetry, and incident response are stable.

## Required production gates

- Every telemetry endpoint requires a valid node key.
- Every customer request requires a customer API key.
- Every routing decision records region, selected node, policy reason, and fallback option.
- Every failover creates an audit event.
- Every deployment has a deployment record with release name, environment, status, evidence URI, and compatibility version field.
- Every regional expansion has a site safety checklist.

## SQL safety

For existing Supabase databases, run:

```txt
1. docs/deployment-runs-version-fix.sql
2. docs/supabase-schema.sql
3. docs/rls-policies.sql
4. docs/seed-demo.sql optional
```

The `deployment_runs.version` column is retained only for compatibility with older installs. Product UI should use `release_name` and avoid public numbered build labels.
