HydraCache 0.54.0
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
InvalidationRelayover the existing tokio-broadcast invalidation bus. - Added
CacheInvalidationFramewith 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.46invalidation 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-redisandhydracache-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_matrixFull gate:
cargo xtask verifyDocker-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.