v0.15.0 - 2026-06-15
Tiered Storage, Pipelined Dispatch & Configurable Flow Control
This release delivers enterprise-grade durability and significantly higher throughput for reliable subscriptions. Messages are now protected by a three-tier storage architecture (WAL → Valkey → Cloud), dispatchers pipeline multiple messages in-flight instead of one-at-a-time, and operators can tune flow control per subscription via config or admin API.
🔒 Tiered Storage & Crash Recovery
-
Valkey write buffer (#229, #230, #231, #232) — Messages are double-written to Valkey Redis Streams alongside the local WAL. On broker crash, uncommitted messages are automatically replayed from Valkey, achieving RPO ≈ 0 without making brokers stateful. by @danrusei in 366103a, 76de6a3, 5685b09, 9e27ea2
-
Hot/Warm/Cold tiered reads (#233, #234) — Consumers seamlessly read across tiers: recent data from the WAL (hot), cached data from Valkey (warm), and historical data from cloud storage (cold). Late-joining consumers and post-crash recovery benefit from warm reads without falling back to expensive cloud fetches. by @danrusei in c83c4f4, c13da87
-
Storage trait decoupling (#228) — Broker internals now program against a
PersistentStoragetrait instead of concreteWalStorage, enabling pluggable storage backends. by @danrusei in acc83a3
⚡ Pipelined Dispatch
-
Multi-message in-flight window (#235) — Reliable Exclusive, Shared, and Key-Shared dispatchers now pipeline multiple messages to consumers without waiting for individual acknowledgments. Out-of-order ACKs are tracked safely; the broker advances progress only past contiguously acknowledged offsets, preserving at-least-once delivery guarantees. by @danrusei in 87351ee
-
Configurable
max_unacked_messages— Operators control the pipelining depth (default: 10, range: 1–10,000) via thedispatch:config section. Per-subscription overrides are available through the admin API (set-dispatch-config/get-dispatch-config), allowing fine-tuning for different workloads without restarting the broker.
Release Notes - Binaries
Danube Broker:
- Linux (x86_64): danube-broker-v0.15.0-x86_64-unknown-linux-gnu.tar.gz
- macOS (Apple Silicon): danube-broker-v0.15.0-aarch64-apple-darwin.tar.gz
- Windows (x86_64): danube-broker-v0.15.0-x86_64-pc-windows-msvc.zip
Client CLI:
- Linux (x86_64): danube-cli-v0.15.0-x86_64-unknown-linux-gnu.tar.gz
- macOS (Apple Silicon): danube-cli-v0.15.0-aarch64-apple-darwin.tar.gz
- Windows (x86_64): danube-cli-v0.15.0-x86_64-pc-windows-msvc.zip
Admin (CLI + Server):
- Linux (x86_64): danube-admin-v0.15.0-x86_64-unknown-linux-gnu.tar.gz
- macOS (Apple Silicon): danube-admin-v0.15.0-aarch64-apple-darwin.tar.gz
- Windows (x86_64): danube-admin-v0.15.0-x86_64-pc-windows-msvc.zip
Checksums:
- SHA256: checksums.txt
Docker Images:
- Danube Broker:
ghcr.io/danube-messaging/danube-broker:v0.15.0 - Danube CLI:
ghcr.io/danube-messaging/danube-cli:v0.15.0 - Danube Admin:
ghcr.io/danube-messaging/danube-admin:v0.15.0
Quick Start with Docker:
# Run Danube Broker
docker run -p 6650:6650 ghcr.io/danube-messaging/danube-broker:v0.15.0
# Use Danube CLI (client operations)
docker run --rm ghcr.io/danube-messaging/danube-cli:v0.15.0 danube-cli produce --help
# Use Danube Admin CLI (admin commands)
docker run --rm ghcr.io/danube-messaging/danube-admin:v0.15.0 brokers list
# Run Danube Admin Server (HTTP API for UI)
docker run -p 8080:8080 ghcr.io/danube-messaging/danube-admin:v0.15.0 serve \
--broker-endpoint host.docker.internal:50051 \
--prometheus-url http://host.docker.internal:9090
# Use with Docker Compose
curl -O https://raw.githubusercontent.com/danube-messaging/danube/main/docker/quickstart/docker-compose.yml
docker-compose up -dInstall from Archive:
# Linux
curl -LsS https://github.com/danube-messaging/danube/releases/download/v0.15.0/danube-broker-v0.15.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv danube-broker /usr/local/bin/
# macOS (Apple Silicon)
curl -LsS https://github.com/danube-messaging/danube/releases/download/v0.15.0/danube-broker-v0.15.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv danube-broker /usr/local/bin/
# Windows (PowerShell)
Invoke-WebRequest -Uri https://github.com/danube-messaging/danube/releases/download/v0.15.0/danube-broker-v0.15.0-x86_64-pc-windows-msvc.zip -OutFile danube-broker.zip
Expand-Archive danube-broker.zip -DestinationPath .
Move-Item danube-broker.exe C:\Windows\System32\Verify Downloads:
curl -LO https://github.com/danube-messaging/danube/releases/download/v0.15.0/checksums.txt
sha256sum -c checksums.txt --ignore-missing