HeddleConfig

data class HeddleConfig(val policy: PolicyConfig, val maxHoldingsPerPeer: Long, val demandTtl: Duration = 30.seconds, val quilter: QuilterConfig = QuilterConfig(), val heartbeat: HeartbeatConfig = HeartbeatConfig(), val random: Random = Random.Default)

Everything a HeddleNode needs beyond the fabric: the reference policy's quanta and caps, the §8.2 bound caps, the demand board's staleness window, and the injected randomness/replication/liveness knobs.

The house rule "time and randomness are dependencies" applies: random is injected (never an unseeded default reached at runtime), and the wall clock is supplied to heddleStatic separately as a () -> Instant.

Constructors

Link copied to clipboard
constructor(policy: PolicyConfig, maxHoldingsPerPeer: Long, demandTtl: Duration = 30.seconds, quilter: QuilterConfig = QuilterConfig(), heartbeat: HeartbeatConfig = HeartbeatConfig(), random: Random = Random.Default)

Properties

Link copied to clipboard

how long a peer's advertised demand stays live without refresh (measured by local receive time, design §6). A crashed peer's demand ages out after this window and stops steering. Must be positive.

Link copied to clipboard

the liveness detector timing (HeartbeatConfig); timeout marks a peer unresponsive (partition), reconnectWindow marks it lost (crash).

Link copied to clipboard

the §8.2 cap E — the most entitlement any one peer may hold at a parent and therefore independently steer among that parent's children. The coarse fairness-error bound is n·E for n peers (design §8.2). Must be > 0.

Link copied to clipboard

the EEVDF allocation caps (PolicyConfig): quantum, per-child outstanding cap, sleeper credit.

Link copied to clipboard

the ledger-replication cadence (QuilterConfig); its antiEntropyInterval is the partition-heal knob.

Link copied to clipboard

injected RNG for the replicators' anti-entropy peer selection — seed it in tests for reproducibility.