Configuration#

A node reads conf/candybox.properties. Every key can be overridden by an environment variable named CANDYBOX_<KEY> (dots become underscores, upper-cased) — for example CANDYBOX_ZOOKEEPER_CONNECT — and the environment value wins. This makes it easy to ship one image and configure each instance through the environment.

Common keys#

KeyMeaningDefault
node.idCluster-unique node id. Falls back to the trailing number in $HOSTNAME (so a Kubernetes pod candybox-2 becomes node 2).
zookeeper.connectZooKeeper connect string, shared by BookKeeper and Candybox coordination.127.0.0.1:2181
server.bindAddress clients connect to.0.0.0.0:9709
server.advertisedAddress published to the cluster for routing (set to a reachable hostname).bind address
health.portHTTP port for /healthz, /readyz, /metrics.9710
quorum.*BookKeeper replication per ledger role (E/Qw/Qa).3/3/2 (WAL, manifest), 3/2/2 (data)
multipart.upload.ttl.millisHow long an abandoned multipart upload is kept before a background sweep aborts it.7 days
rename.intent.abandon.millisCross-partition rename: how long the source owner keeps a rename intent whose destination rendezvous marker never appears before dropping it (the source stays live).60000 (60 s)

Full reference#

The complete, commented list of keys lives in candybox.properties.example, and the CandyboxConfig section of OPERATIONS.md documents the operational meaning of each tunable, including the security, consistency, and garbage collection settings.