Skip to content

HydraCache 0.54.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 15:38
· 1133 commits to main since this release

HydraCache 0.54.0

0.54.0 adds external invalidation transports: a pluggable
InvalidationTransport relay, CacheInvalidationFrame fencing, bounded resume
behavior, and opt-in Redis and NATS transport crates for process-to-process
freshness fan-out inside one HydraCache cluster.

The release extends the existing invalidation bus off-process without turning it
into a durable event log or cross-cluster replication system.

Highlights

  • Added InvalidationTransport, in-memory transport tests, and
    InvalidationRelay over the existing tokio-broadcast invalidation bus.
  • Added CacheInvalidationFrame with generation/version fencing so reordered
    or stale messages cannot resurrect old values.
  • Added anti-storm behavior: inbound transport events apply locally and are not
    re-published back into the external transport.
  • Added resume via the 0.46 invalidation ring and fail-loud
    FellBehind/clear-partition behavior.
  • Added bounded queues, buffer limits, rate-limit hooks, malformed-frame
    handling, and bounded-label metrics.
  • Added opt-in hydracache-transport-redis and hydracache-transport-nats
    backend crates.
  • Added a deterministic fault matrix for reorder, duplicates, gaps, malformed
    frames, overrun, resume, and storm prevention.
  • Updated publish hygiene for the new transport crates.

Verification

Focused gates:

cargo test -p hydracache --locked invalidation_transport
cargo test -p hydracache --locked transport_resume
cargo test -p hydracache-transport-redis --locked
cargo test -p hydracache-transport-nats --locked
cargo test -p hydracache --locked transport_fault_matrix

Full gate:

cargo xtask verify

Docker-backed Redis/NATS rows skip cleanly when Docker is unavailable.

Scope Boundary

External invalidation transports are freshness relays for one cluster. They are
not a durable event log, not cross-cluster WAN replication, and not part of the
cache fast path. Publish never blocks normal cache operations.

Release Status

Published as 0.54.0 after the relay, backend, fault-matrix, and publish-hygiene
gates.