Configuration File Structure
A complete configuration file has these top-level sections:Logging Configuration
Configure log output format and level:boolean
default:"true"
Output logs to stdout instead of files
string
default:"info"
Minimum log level:
debug, info, warn, errorPersistence Configuration
Basic Setup
integer
default:"4"
Number of history shards. Higher values improve scalability.Recommendations:
- Development: 4
- Small production: 128-512
- Large production: 1024-4096
MySQL Configuration
PostgreSQL Configuration
Use
postgres12_pgx for better performance with the pgx driver.Cassandra Configuration
Elasticsearch Configuration
For advanced visibility features:Connection Pool Settings
integer
default:"20"
Maximum number of connections to the database
integer
default:"20"
Maximum number of idle connections to maintain
duration
default:"1h"
Maximum lifetime of a connection before it is closed
Global Configuration
Membership Settings
duration
default:"30s"
Maximum time for a service to join the cluster ring
string
Address advertised to other cluster members. Leave empty for auto-detection.
Metrics Configuration
- Prometheus
- StatsD
http://localhost:8000/metricsProfiling Configuration
http://localhost:7936/debug/pprof/heaphttp://localhost:7936/debug/pprof/profilehttp://localhost:7936/debug/pprof/goroutine
TLS Configuration
- Internode TLS
- Frontend TLS
- Certificate Rotation
Authorization Configuration
Service Configuration
Frontend Service
History Service
Matching Service
Worker Service
Internal Frontend Service
The internal-frontend service is optional and used for internal cross-cluster communication.
Cluster Metadata
Single Cluster
Multi-Cluster Setup
boolean
default:"false"
Enable global namespaces for multi-cluster replication
integer
default:"10"
Version increment between clusters. Use larger values (100+) for multi-cluster.
Archival Configuration
Archive completed workflow histories for long-term storage:- File Store
- S3
- Google Cloud Storage
Dynamic Configuration
dynamicconfig/production.yaml
Environment Variable Templating
Configuration files support Go template syntax for environment variables:env "VAR"- Get environment variabledefault "value" (env "VAR")- Get with defaultcoalesce (env "VAR1") (env "VAR2") "default"- First non-empty value
Complete Example
View complete production configuration
View complete production configuration
config/production.yaml