# Temporal development setup
services: temporal: image: temporalio/auto-setup:1.29.3 ports: - "7233:7233" depends_on: - postgresql environment: - DB=postgresql - DB_PORT=5432 - POSTGRES_USER=temporal - POSTGRES_PWD=temporal - POSTGRES_SEEDS=postgresql - DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development-sql.yaml -weight: 500;">restart: unless-stopped temporal-ui: image: temporalio/ui:2.36.2 ports: - "8080:8080" environment: - TEMPORAL_ADDRESS=temporal:7233 - TEMPORAL_CORS_ORIGINS=http://localhost:3000 depends_on: - temporal -weight: 500;">restart: unless-stopped postgresql: image: postgres:16-alpine environment: POSTGRES_USER: temporal POSTGRES_PASSWORD: temporal volumes: - temporal_db:/var/lib/postgresql/data -weight: 500;">restart: unless-stopped volumes: temporal_db:
# Temporal development setup
services: temporal: image: temporalio/auto-setup:1.29.3 ports: - "7233:7233" depends_on: - postgresql environment: - DB=postgresql - DB_PORT=5432 - POSTGRES_USER=temporal - POSTGRES_PWD=temporal - POSTGRES_SEEDS=postgresql - DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development-sql.yaml -weight: 500;">restart: unless-stopped temporal-ui: image: temporalio/ui:2.36.2 ports: - "8080:8080" environment: - TEMPORAL_ADDRESS=temporal:7233 - TEMPORAL_CORS_ORIGINS=http://localhost:3000 depends_on: - temporal -weight: 500;">restart: unless-stopped postgresql: image: postgres:16-alpine environment: POSTGRES_USER: temporal POSTGRES_PASSWORD: temporal volumes: - temporal_db:/var/lib/postgresql/data -weight: 500;">restart: unless-stopped volumes: temporal_db:
# Temporal development setup
services: temporal: image: temporalio/auto-setup:1.29.3 ports: - "7233:7233" depends_on: - postgresql environment: - DB=postgresql - DB_PORT=5432 - POSTGRES_USER=temporal - POSTGRES_PWD=temporal - POSTGRES_SEEDS=postgresql - DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development-sql.yaml -weight: 500;">restart: unless-stopped temporal-ui: image: temporalio/ui:2.36.2 ports: - "8080:8080" environment: - TEMPORAL_ADDRESS=temporal:7233 - TEMPORAL_CORS_ORIGINS=http://localhost:3000 depends_on: - temporal -weight: 500;">restart: unless-stopped postgresql: image: postgres:16-alpine environment: POSTGRES_USER: temporal POSTGRES_PASSWORD: temporal volumes: - temporal_db:/var/lib/postgresql/data -weight: 500;">restart: unless-stopped volumes: temporal_db: - You're building application workflows that must complete reliably (payments, orders, subscriptions)
- You need sub-second latency for workflow task dispatch
- You need workflows that run for hours, days, or months (with sleep/timer primitives)
- You're implementing saga patterns with compensation logic for distributed transactions
- You need human-in-the-loop workflows (signals, queries, updates)
- Your team writes Go, Java, Python, or TypeScript and wants workflow-as-code - You're orchestrating scheduled data pipelines (ETL, ELT, ML training)
- You need date-range backfill for historical data reprocessing
- You rely on provider packages for Spark, dbt, Snowflake, BigQuery, etc.
- Your team are Python data engineers who know the DAG paradigm
- You need a proven, 10-year-old platform with massive community support
- You want multiple managed hosting options as an escape hatch - Temporal vs n8n
- Airflow vs n8n
- Prefect vs Airflow
- Kestra vs n8n
- Best Self-Hosted Automation Tools
- Self-Hosted Alternatives to Zapier