Skip to content

HydraCache 0.60.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 09:09
· 1052 commits to main since this release

HydraCache 0.60.0

0.60.0 hardens the 0.59.0 networked daemon grid into a production-shaped
cluster foundation. It closes the cluster-transport TLS and peer-auth gap,
adds persistent node identity, makes raft voter membership dynamic, and moves
the networked daemon proof into CI-visible tiers.

The release hardens the shipped raft-rs integration. It does not add a new
consensus algorithm, a new consistency level, autoscaling policy, or a
placement/data-plane rewrite.

Highlights

  • Added peer authentication on the raft cluster route using the existing node
    identity credential seam.
  • Added real TLS termination for the cluster listener and HTTPS outbound raft
    transport, closing the previous TLS-configured dead-end.
  • Added persistent node identity decoupled from cluster_addr, with fail-loud
    mismatch/collision behavior.
  • Added raft ConfChange voter add/remove plumbing, persisted ConfState,
    voter-based quorum reporting, and graceful drain that removes a voter.
  • Fixed proposal reporting so follower proposals are no longer described as
    committed before raft has actually committed them.
  • Hardened the networked drive loop and status path with diagnostics counters,
    bounded discovery history, materialized reachability, and more honest phase
    labeling.
  • Extended multi-daemon tests for no lost committed metadata, follower drain,
    leader drain/re-election, and drain-shrinks-quorum behavior.

Verification

Focused release gates:

cargo test -p hydracache-cluster-raft --locked
cargo test -p hydracache-server --test grid_host --locked
$env:HYDRACACHE_RUN_NETWORKED_DAEMON_E2E='1'
cargo test -p hydracache-server --test grid_host multi_node --locked -- --nocapture
cargo xtask doc-check
cargo xtask verify

Scope Boundary

Late-start daemon join bootstrap remains explicit follow-up work for 0.61.0.
The release makes scale-up/down mechanically possible and truthful at the raft
membership plane; it does not decide when to autoscale and does not replace the
operator or deployment environment.