Skip to content

RustQueue 0.8.0

Choose a tag to compare

@SamuelSupe SamuelSupe released this 24 Jul 08:16

RustQueue 0.8.0

RustQueue 0.8.0 adds a production-shaped Kodo compatibility profile entirely on the RustQueue side. Upstream Kodo does not need to be modified.

Highlights

  • Discovery /nodes advertises three stable producer Gateway identities while /lookup continues to return the real Broker owners used by consumers.
  • The Gateway terminates the NSQ producer protocol, routes only to publish-ready Brokers, and retries another Broker only after an explicit pre-commit rejection. Ambiguous post-write failures are returned without an automatic replay.
  • The NSQ-compatible /stats response now includes the standard topic_name, channel_name, depth, client, and cumulative counter fields expected by Kodo.
  • Topic and Channel message, requeue, and timeout counters are durable and monotonic across restart, empty, and eviction.
  • Kodo's unauthenticated channel cleanup is disabled and fails closed. Administrative operations use RustQueue's authenticated native management flow.
  • The stable protocol/storage maximum is now 100 MiB. The Kodo profile accepts and validates Kodo's exact 104,857,500-byte application maximum.
  • Token rotation, drain and disk-pressure routing, rolling cutover, readiness fences, metrics, alerts, and Operator status handling are hardened.

Deployment and upgrade notes

  • Kodo compatibility remains opt-in with queue.kodoCompatibility.enabled=true.
  • The profile requires three schedulable Broker/Gateway nodes and an immutable image digest. Consult the Kubernetes operations guide for resource, network-policy, and cutover requirements.
  • Existing clusters must first roll the 0.8.0 Broker image and wait for Ready=True before enabling the Kodo profile or publishing messages above the previous limit.
  • After Gateway advertisement, restart every Kodo publisher and update producerRestartNonce. Broker maintenance remains blocked until the restart fence is confirmed.
  • Automatic Kodo channel cleanup must remain disabled.
  • Storage feature level 2 is a monotonic rollback floor after large records are written.

Validation

  • complete Rust 1.88 release gate: format, locked all-feature check/test, Clippy, and release build
  • Console typecheck/build and Helm lint/template
  • all seven fuzz targets
  • Go and Python NSQ compatibility in plain and secure modes
  • unmodified real Kodo source parser/admin-flow replay
  • exact 104,857,500-byte PUB/DPUB with one Gateway failover
  • three-Broker acceptance: 3,239 expected and unique messages, zero missing, duplicates, or publish errors

Assets

  • rustqueue-0.8.0-linux-aarch64.tar.gz: Linux ARM64 binaries and example configuration
  • rustqueue-0.8.0-source.tar.gz: source archive
  • rustqueue-0.8.0.tgz: Helm chart
  • SHA256SUMS-0.8.0: SHA-256 checksums