Set up Temporal as the workflow execution engine for your SuprSend self-hosted deployment.
Temporal is a distributed, scalable, durable, and highly available orchestration engine designed to execute asynchronous long-running business logic in a resilient way. This guide walks you through setting up Temporal for SuprSend’s Self-Hosted deployment.This installation guide covers:
Setting up Temporal with PostgreSQL for standard workloads
Configuring Temporal with Cassandra for high-volume workloads (>0.5M workflows/day)
Enabling SSO authentication
Configuring required search attributes for SuprSend
Before installing Temporal, ensure you have:System Requirements
Kubernetes cluster (AWS EKS, GKE, AKS, kind, or minikube)
kubectl configured to access your cluster
Helm v3 (v3.8.0 or later recommended)
Git for cloning the Temporal repository
Database Requirements
PostgreSQL 12+ instance accessible from your Kubernetes cluster. For smaller deployments you can use same postgres database which is setup for suprsend. If you have higher volume, you can setup a different postgres instance as well OR move to cassandra backed deployment.
Database credentials with sufficient privileges to create databases and schemas
# Check pod statuskubectl get pods -n temporal# Check serviceskubectl get svc -n temporal# Check if Temporal UI is accessiblekubectl port-forward -n temporal svc/temporal-frontend 8080:8080
# check the namespaces, you should get two namespaces temporal-system, default$ temporal operator namespace list --output jsonl | jq ".namespaceInfo.name""temporal-system""default"
Once your Temporal cluster is set up and running with the required search attributes, configure SuprSend to connect to it.
This section shows only the Temporal-specific configuration. You must also configure other required secrets and values for SuprSend to work properly. See the complete configuration guide: SuprSend Installation Guide
Helm Values ConfigurationAdd the following to your suprsend-values.yaml (along with other required configuration):
Copy
Ask AI
# Temporal server host and port (e.g: temporal-frontend.temporal.svc.cluster.local:7233)temporalServerHostPort: "temporal-frontend.temporal.svc.cluster.local:7233"
The above configuration goes under global.config section in your suprsend-values.yaml.
Monitor your Temporal deployment using standard Kubernetes tools:
Copy
Ask AI
# Check all Temporal serviceskubectl get svc -n temporal# Check pod statuskubectl get pods -n temporal# Check resource usagekubectl top pods -n temporal
Check existing search attributes with tctl admin cluster get-search-attributes. If they already exist, you can skip adding them or remove and re-add with tctl admin cluster remove-search-attributes --name SS_WorkspaceId.
Pods stuck in Pending or CrashLoopBackOff
Check pod status and events:
Copy
Ask AI
kubectl describe pod -n temporal -l app.kubernetes.io/name=temporalkubectl top nodeskubectl top pods -n temporalkubectl logs -n temporal -l app.kubernetes.io/name=temporal
Web UI not accessible
Check service status and port-forward to access the UI:
Copy
Ask AI
kubectl get svc -n temporalkubectl port-forward -n temporal svc/temporal-frontend 8080:8080kubectl get pods -n temporal -l app.kubernetes.io/component=frontend