Skip to content

Sizing

Two independent axes shape what a tenant gets: tier (federation-wide) and size (per-spoke).

Tier — federation-wide

Tier sets the SLA, the isolation level, and the backup retention window. You pick it once when you create the federation; you can upgrade later by talking to support.

TierSpoke nodesBackup retentionCross-region copiesSuits
StandardShared cluster nodes30 daysNoPilots, internal tools, low-stakes federations
DedicatedIsolated nodes90 daysYesCustomer-facing production, regulated workloads

Both tiers run the same software, the same chart, and the same control plane. The differences are operational: where pods land, how long snapshots stay, what we promise on RPO/RTO.

Size — per-spoke

Size controls the CPU and memory budget of an individual spoke pod. You pick it at provision time and can change it later via POST /spokes/:id/actions with { action: "resize", size: "<new>" }.

SizeRequestsLimitsSuits
Small200m CPU, 512Mi mem1000m CPU, 2Gi memup to ~50 active users
Medium500m CPU, 1Gi mem2000m CPU, 4Gi memup to ~500 active users
Large1000m CPU, 2Gi mem4000m CPU, 8Gi memup to ~2,000 active users

The user numbers are rough. A small spoke running a quiz that everyone takes at the same time will hit the wall faster than a large spoke serving asynchronous self-paced courses.

Hub size

The hub gets a fixed size keyed off the federation tier:

Federation tierHub requestsHub limits
Standard500m CPU, 1Gi mem2000m CPU, 4Gi mem
Dedicated1000m CPU, 2Gi mem4000m CPU, 8Gi mem

Hubs do less heavy lifting per-user than spokes (they author and publish; they don't run live courses), so they don't need the per-spoke sizing knob.

When to upsize

Two leading indicators:

  • CPU throttling — pod CPU usage flat at the limit for sustained periods. Visible in the operator portal's spoke detail page.
  • OOMKilled events — pod restarts logged with reason OOMKilled. Will show up in the audit log too.

Either means you're at the ceiling. Upsize before users start seeing 502s.

When to downsize

Less common, but: if you've migrated away from a busy course or a cohort has finished, dropping from Large back to Medium reclaims ~30–50% of the cost. Same resize action, no data loss, ~30s of pod restart.

Pricing

Each (tier, size) combination maps to a Stripe price. The wizard's "Preview cost" step shows recurring monthly + due-now proration before you commit. See API → Spokes → preview-cost.

Released under the GPL v3 license.