rivvend
The Rivven broker server daemon.
Features
- Native Protocol - High-performance binary protocol
- HTTP Gateway - REST API for management
- Sticky Partitioner - Kafka 2.4+ style partitioning for optimal throughput
- Replication - Multi-node replication with Raft consensus
- Authentication - SCRAM-SHA-256, mTLS, API keys
- Authorization - Cedar policy engine
- Dashboard - Leptos/WASM web UI (embedded when built with
--features dashboard)
Installation
# Build from source (without dashboard)
# Build with embedded dashboard
# First, build the dashboard assets:
# Then build the server with dashboard feature:
# Run the server
# Dashboard available at http://localhost:8080/
Note: The dashboard requires building with the dashboard feature, which embeds the WASM assets compiled by trunk. See rivven-dashboard README for details.
Message Partitioning
Rivven uses sticky partitioning (Kafka 2.4+ compatible):
| Message Type | Strategy | Behavior |
|---|---|---|
| With key | Murmur2 hash | Same key → same partition |
| Without key | Sticky batching | Batches to one partition, rotates periodically |
| Explicit partition | Direct | Uses specified partition |
Configure via CLI:
Or environment variables:
Configuration
# rivven.yaml
server:
bind_address: "0.0.0.0:9092"
http_port: 8080
storage:
data_dir: /var/lib/rivven
segment_bytes: 1073741824 # 1GB
cluster:
node_id: 1
peers:
- "node2.rivven:9093"
- "node3.rivven:9093"
auth:
enabled: true
mechanism: scram-sha-256
tls:
enabled: true
cert_file: /etc/rivven/server.crt
key_file: /etc/rivven/server.key
CLI Options
Metrics
The server exposes Prometheus metrics on the HTTP port:
License
See root LICENSE file.