Skip to content

Configuration Reference

Both binaries take a single --config-file <path> argument pointing at a YAML file. All fields are required — there are no defaults.

Coordinator

config/coordinator/config.yml
log_level: info
metadata_dir: data/coordinator
grpc_listen_addr: "0.0.0.0:50040"
pg_listen_addr: "0.0.0.0:5432"
heartbeat_timeout_secs: 15
default_replication_factor: 3
tail_retry_initial_ms: 100
tail_retry_max_ms: 5000
ballista_scheduler_listen_addr: "0.0.0.0:50050"
Field Description
log_level Logging verbosity (e.g. info, debug).
metadata_dir Directory where the coordinator persists its metadata catalog.
grpc_listen_addr Address for the coordinator gRPC server (core node registration, heartbeats).
pg_listen_addr Address for the PostgreSQL wire protocol listener — clients connect here.
heartbeat_timeout_secs How long a core node may miss heartbeats before being declared dead.
default_replication_factor Cluster-wide replica count (N) for shards, overridable per table at creation.
tail_retry_initial_ms Initial backoff before retrying a write to a lagging replica (tail replication).
tail_retry_max_ms Maximum backoff for tail-replication retries.
ballista_scheduler_listen_addr Address of the embedded Ballista scheduler; core node executors connect here.

Core node

config/core/config.yml
log_level: info
node_id: "core-1"
data_dir: data/core
grpc_listen_addr: "0.0.0.0:50041"
advertised_address: "core-1:50041"
coordinator_addr: "http://coordinator:50040"
heartbeat_interval_secs: 2
write_queue_capacity: 1024
ballista_scheduler_addr: "http://coordinator:50050"
ballista_concurrent_tasks: 4
Field Description
log_level Logging verbosity.
node_id Unique identifier for this core node. Must be unique across the cluster.
data_dir Directory where this node stores its DuckDB shard files.
grpc_listen_addr Address for this node's gRPC write service (receives DML from the coordinator).
advertised_address Address other components use to reach this node. Must be reachable on the network and unique per node.
coordinator_addr URL of the coordinator's gRPC endpoint (for registration and heartbeats).
heartbeat_interval_secs How often this node sends heartbeats to the coordinator.
write_queue_capacity Capacity of the per-node write queue that serializes writes to DuckDB.
ballista_scheduler_addr URL of the coordinator's Ballista scheduler, which this node's executor connects to.
ballista_concurrent_tasks Maximum number of query stages this node's executor runs concurrently.

Default ports

Port Service
5432 PostgreSQL wire protocol (client connections)
50040 Coordinator gRPC (node registration, heartbeats)
50041 Core node gRPC (write dispatch)
50050 Ballista scheduler (distributed query execution)