Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Configuration Reference

Cluster configuration (ClusterConfig)

Stored in TOML, loaded on node startup, propagated via gossip.

FieldTypeDefaultDescription
cluster_idUUID(generated)Unique identifier for this cluster
resilience_pctu833Erasure coding resilience percentage. k = ceil(N * (1 - R/100))
graph_memory_limit_bytesu641,073,741,824Maximum memory for active graph per node (INV-R6)
shamir_total_sharesu85Total shares in Shamir ceremony
shamir_thresholdu83Minimum shares for reconstruction
max_data_hierarchy_depthu816Maximum depth for hierarchical data units
gossip_intervalDuration500msSWIM probe interval
gossip_suspicion_timeoutDuration5sBase suspicion timeout
witness_countu82Independent witnesses for failure (INV-R3)
indirect_probe_countu83Peers asked for indirect probes
retransmit_multiplieru84Piggyback rounds = mult × log₂(N)
max_piggyback_entriesu88Max membership changes per message
suspicion_multiplieru84Effective timeout = mult × ceil(log₂(N)) × interval
max_spawn_depthu84Maximum spawn depth for bounded tasks (INV-W3)
revocation_grace_windowOptionNoneGrace window in logical clock delta (INV-S3)
fleet_command_rate_limit_lcu641000Min LC delta between fleet commands of same type

Node configuration (NodeConfig)

FieldTypeDefaultDescription
wal_dirString“./wal”Directory for WAL segment files
listen_addrString“0.0.0.0:7946”Bind address for peer communication
seed_nodesVec[]Seed nodes for gossip bootstrap
require_tpmboolfalseWhether TPM attestation is required (A5)
environmentOptionNoneEnvironment tag (e.g., “env:dev”)
custom_tagsVec<(String, String)>[]Additional custom tags
archive_backendOptionNoneArchive storage configuration

Archive backend

[archive_backend]
# Local filesystem
backend = "local"
path = "/var/lib/taba/archive"

# Or S3-compatible
backend = "s3"
endpoint = "https://s3.amazonaws.com"
bucket = "taba-archive"
region = "us-east-1"

Gossip auto-tuning

Effective suspicion timeout scales with cluster size:

effective = max(base_timeout, suspicion_mult × ceil(log2(N)) × interval)

At 10,000 nodes: ~1 KB/s per node, ~10 MB/s cluster-wide. Acceptable.

Key revocation messages use 2 × retransmit_multiplier × log₂(N) rounds (double normal) for rapid convergence.