Skip to main content

Temporal variants

OpenBox uses Temporal as its workflow engine. The Helm chart supports two variants — customer picks per data residency, ops burden, and cost profile.

Side-by-side comparison

AspectSelf-hosted TemporalTemporal Cloud
Workflow engine4 in-cluster pods (frontend / history / matching / worker) — image temporalio/server:1.29.1Managed SaaS
Client → engine protocolgRPC plaintext, cluster-internal temporal-frontend.temporal.svc:7233gRPC + TLS across public internet
Visibility (search) storeElasticsearch 7.17.3 × 3 pods (30 GiB gp3 each)Temporal-managed
Default (workflow history) storeDedicated PostgreSQL cluster (openbox-postgres-temporal)Temporal-managed
Temporal Web UISelf-hosted temporal-web pod behind IstioTemporal SaaS console
Ops burdenHIGH — cluster upgrades, ES health, retention tuning, PG backup + DRLOW — Temporal handles upgrades + retention
Data residencyFully in your VPCTemporal SaaS region (limited list)
AWS bill deltaBaseline + ~$300-640/mo (memory pool + DB pool + ES + PVCs)Baseline
Temporal Cloud subscription$0~$50-500+/mo (workflow-volume dependent)

Break-even math

Roughly: self-hosted Temporal wins on total cost if Temporal Cloud's per-action billing exceeds ~$300-600/mo for your workload. Below that threshold, Temporal Cloud is cheaper (no AWS delta + minimal SaaS bill).

Rule of thumb:

  • < 100K workflow executions/day → Temporal Cloud
  • > 500K workflow executions/day → Self-hosted starts to win
  • Between: compute both, pick whichever has more headroom

Openbox does not prescribe — customer knows their workload.

When to pick self-hosted

  • ✅ Data residency requirement forbids SaaS (finance, gov, EU-strict)
  • ✅ Air-gapped or heavily restricted network (S4 post-MVP scenario)
  • ✅ Very high workflow volume (self-hosted amortizes fixed infra cost)
  • ✅ Existing Temporal expertise on team (upgrades, retention, ES ops)

When to pick Temporal Cloud

  • ✅ Small-to-medium workflow volume
  • ✅ Team doesn't want ES / PostgreSQL ops on top of application ops
  • ✅ Multi-region setup — Temporal Cloud handles regional replication
  • ✅ Fast time-to-first-workflow (no in-cluster Temporal to provision)

Chart config

Set via openbox-core.temporal.mode:

# Self-hosted variant
openbox-core:
temporal:
mode: self-hosted
server:
replicas: 4

# Temporal Cloud variant
openbox-core:
temporal:
mode: cloud
cloud:
namespace: <your-temporal-cloud-namespace>
address: <ns>.<acct>.tmprl.cloud:7233
tlsSecretRef: temporal-cloud-tls # K8s Secret with client cert + key

Full values reference: openbox-core.temporal.*.

Migration between variants

Cloud → Self-hosted (or vice versa) requires:

  1. Drain in-flight workflows (Temporal API: SignalWithStart to a terminate flow)
  2. Export workflow history (self-hosted: pg_dump; Cloud: Temporal export API)
  3. Import to target variant
  4. Cut over openbox-core.temporal.* values + helm upgrade
  5. Verify workflow visibility in target UI

Zero-downtime migration is not supported by the chart. Plan a maintenance window (~1-4 hours depending on workflow volume).