Skip to main content

Configuration

Application configuration can be supplied through:

  • file: configured by env CONFIG_FILE (yaml/json format)
  • env variables

Root Configuration:

Top-level configuration object.

FieldTypeDescription
httpServerHttpServerConfiguration of the public REST server
grpcServerGrpcServerConfiguration of the public GRPC server
tracingTracingTracing and observability configuration
clusterClusterCluster and Raft consensus configuration

Server Configuration: Server

Defines settings for the public REST API server.

FieldTypeEnv VariableDefaultDescription
contextstringREST_API_CONTEXT/Base context path for the API
addrstringREST_API_ADDR:8080Address the server binds to

GRPC Server Configuration: GrpcServer

Defines settings for the GRPC API server.

FieldTypeEnv VariableDefaultDescription
addrstringGRPC_API_ADDR:9090Address the GRPC server listens on

Cluster Configuration: Cluster

Settings related to clustering, internal communication, and Raft consensus.

FieldTypeEnv VariableDefaultDescription
nodeIdstringCLUSTER_NODE_IDUnique node identifier
addrstringCLUSTER_RAFT_ADDR:8090Bind address for internal Raft communication
advstringCLUSTER_RAFT_ADV(same as addr)Advertised Raft address
raftClusterRaftRaft-specific cluster settings
persistencePersistencePersistence and caching configuration

Raft Configuration: ClusterRaft

Raft consensus and cluster joining settings.

FieldTypeEnv VariableDefaultDescription
dirstringCLUSTER_RAFT_DIRzen_bpm_node_dataPath to local node data
nonVoterboolCLUSTER_RAFT_NON_VOTERfalseSet node as non-voting member
joinAttemptsintCLUSTER_RAFT_JOIN_ATTEMPTS5Number of join attempts
joinIntervaldurationCLUSTER_RAFT_JOIN_INTERVAL2sTime interval between join attempts
joinAddresses[]stringCLUSTER_RAFT_JOIN_ADDRESSESList of node addresses to join
bootstrapExpectintCLUSTER_RAFT_BOOTSTRAP_EXPECT0Minimum nodes for bootstrap
bootstrapExpectTimeoutdurationCLUSTER_RAFT_EXPECT_BOOTSTRAP_TIMEOUT10sMax timeout for expected bootstrap nodes

Persistence Configuration: Persistence

Configuration for caching and storage.

FieldTypeEnv VariableDefaultDescription
procDefCacheTTLtime.DurationPERSISTENCE_PROC_DEF_CACHE_TTL_SECONDS24hTTL for cached process definitions
procDefCacheSizeintPERSISTENCE_PROC_DEF_CACHE_SIZE200Max number of cached process definitions
rqlite*RqLiteConfiguration for embedded RQLite database

Tracing Configuration: Tracing

Distributed tracing settings using OpenTelemetry.

FieldTypeEnv VariableDefaultDescription
enabledboolTRACING_ENABLEDfalseEnable or disable tracing
namestringTRACING_APP_NAMEZenBPMApplication name for tracing
transferHeaders[]stringTRACING_TRANSFER_HEADERSHTTP headers to propagate through trace context
endpointstringOTEL_EXPORTER_OTLP_ENDPOINTOTLP exporter endpoint (e.g., for Jaeger/Tempo)

Example YAML Configuration

name: zenbpm
httpServer:
context: /
addr: :8080
grpcServer:
addr: :9090
cluster:
addr: localhost:8090
adv: localhost:8090
raft:
dir: node-1
bootstrapExpect: 1
bootstrapExpectTimeout: 30s
joinAttempts: 5
joinAddresses:
- localhost:8090
nodeId: node-1
tracing:
enabled: true
endpoint: localhost:4318
name: ZenBPM