Skip to content

HydraCache 0.49.0

Choose a tag to compare

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

HydraCache 0.49.0

0.49.0 adds the ecosystem and external-consumer slice: a long-running
external server surface, stable versioned client wire protocol, Hibernate L2
contract, Rust/Python SDK conformance, Java/Spring migration guidance,
multi-tenant isolation, data-residency policy, and consumer-facing observability.

The release turns HydraCache from an embeddable Rust cache into a shared backend
that non-Rust services can use safely. It does not add a general CP subsystem,
distributed transactions, remote code execution, or unbounded event streaming.

Highlights

  • Added the external client route boundary and threat model for /client/v1/*,
    with explicit lifecycle tests on the server surface.
  • Added the hydracache-client-protocol crate with versioned request/response
    frames, fixture tests, loud version rejection, and stable operation/error
    contracts.
  • Added Axum client transport coverage for authenticated external client
    requests and response decoding.
  • Added a Hibernate second-level cache contract (the Rust-side request-shaping
    in hydracache_client_protocol::hibernate) and migration documentation for
    Java/Spring users moving from Hazelcast-style backends. The Java
    hydracache-hibernate RegionFactory artifact is planned, not shipped here
    (see docs/technical-debt/TD-0005-…).
  • Added SDK conformance coverage through hydracache-client, including
    repeatable fixtures that non-JVM SDKs must match.
  • Added tenant quotas, namespace admission, fair-share/backpressure behavior,
    and residency pinning so external consumers cannot silently escape placement
    or capacity policy.
  • Added consumer-facing metrics, bounded labels, and audit events for external
    client access.

Verification

Focused gates:

cargo test -p hydracache-server --locked client_surface_lifecycle
cargo test -p hydracache-client-protocol --locked fixtures
cargo test -p hydracache-client-protocol --locked protocol
cargo test -p hydracache-client-protocol --locked hibernate_contract
cargo test -p hydracache-client-transport-axum --locked client_surface
cargo test -p hydracache-client --locked conformance
cargo test -p hydracache-client-protocol --locked java_migration_contract
cargo test -p hydracache --locked multitenancy
cargo test -p hydracache --locked residency
cargo test -p hydracache-observability --locked consumer_observability
cargo test -p hydracache --locked fault_injector_selftest

Full gate used during the release work:

cargo fmt --all -- --check
cargo test --workspace --all-targets --locked
cargo test -p hydracache --all-targets --locked --features durable-values,tiered-values,testing
cargo test -p hydracache-cluster-raft --all-targets --locked --features durable-log
cargo test --doc --workspace --locked

Scope Boundary

This is an external-consumer release, not a replacement for application
authorization, database transactions, or platform networking policy. Client
protocols are versioned and bounded; SDKs and Java migration contracts are
conformance surfaces over the shipped cache/grid behavior.

Release Status

Published as 0.49.0 after the focused gates above and staged package
verification.