From d648b755ba2669aacfd79bcd5b2ef855d45675fc Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Mon, 23 Mar 2026 22:37:53 +0100 Subject: [PATCH] feat: add Temporal workflow orchestration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Añadido Temporal con PostgreSQL dedicado para orquestación de workflows y transformaciones de datos. Servicios incluidos: - Temporal Server (puerto 7233) - Temporal UI (puerto 3400) - Temporal PostgreSQL (puerto 5435) - Temporal Admin Tools Configuración dinámica en temporal-dynamicconfig/ con features habilitadas para desarrollo. --- docker-compose-temporal.yml | 64 +++++++++++++++++++++ temporal-dynamicconfig/development-sql.yaml | 20 +++++++ 2 files changed, 84 insertions(+) create mode 100644 docker-compose-temporal.yml create mode 100644 temporal-dynamicconfig/development-sql.yaml diff --git a/docker-compose-temporal.yml b/docker-compose-temporal.yml new file mode 100644 index 0000000..4e952f2 --- /dev/null +++ b/docker-compose-temporal.yml @@ -0,0 +1,64 @@ +services: + temporal-postgresql: + image: postgres:15 + container_name: temporal-db + environment: + POSTGRES_USER: temporal + POSTGRES_PASSWORD: temporal + POSTGRES_DB: temporal + ports: + - "5435:5432" + volumes: + - temporal-postgres-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready", "-U", "temporal"] + interval: 5s + timeout: 5s + retries: 5 + restart: unless-stopped + + temporal: + image: temporalio/auto-setup:latest + container_name: temporal + depends_on: + temporal-postgresql: + condition: service_healthy + environment: + - DB=postgres12 + - DB_PORT=5432 + - POSTGRES_USER=temporal + - POSTGRES_PWD=temporal + - POSTGRES_SEEDS=temporal-postgresql + - DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development-sql.yaml + ports: + - "7233:7233" + volumes: + - ./temporal-dynamicconfig:/etc/temporal/config/dynamicconfig + restart: unless-stopped + + temporal-ui: + image: temporalio/ui:latest + container_name: temporal-ui + depends_on: + - temporal + environment: + - TEMPORAL_ADDRESS=temporal:7233 + - TEMPORAL_CORS_ORIGINS=http://localhost:3400 + ports: + - "3400:8080" + restart: unless-stopped + + temporal-admin-tools: + image: temporalio/admin-tools:latest + container_name: temporal-admin-tools + depends_on: + - temporal + environment: + - TEMPORAL_ADDRESS=temporal:7233 + - TEMPORAL_CLI_ADDRESS=temporal:7233 + stdin_open: true + tty: true + restart: unless-stopped + +volumes: + temporal-postgres-data: diff --git a/temporal-dynamicconfig/development-sql.yaml b/temporal-dynamicconfig/development-sql.yaml new file mode 100644 index 0000000..88c0ec6 --- /dev/null +++ b/temporal-dynamicconfig/development-sql.yaml @@ -0,0 +1,20 @@ +# Temporal dynamic configuration for development +system.forceSearchAttributesCacheRefreshOnRead: + - value: true + constraints: {} + +frontend.enableUpdateWorkflowExecution: + - value: true + constraints: {} + +history.enableParentClosePolicyWorker: + - value: true + constraints: {} + +system.enableActivityEagerExecution: + - value: true + constraints: {} + +frontend.enableExecuteMultiOperation: + - value: true + constraints: {}