Rivven
A high-performance distributed event streaming platform.
Why Rivven?
Lightweight binaries. Zero dependencies. Sub-second startup. Production ready.
Modern event streaming shouldnβt require a JVM, ZooKeeper, or a team of dedicated operators. Rivven delivers enterprise-grade capabilities with lightweight, focused binaries:
| Traditional Platforms | Rivven |
|---|---|
| JVM + ZooKeeper + heavy dependencies | Lightweight native binaries, no runtime dependencies |
| Minutes to start | <1 second startup |
| Separate CDC tools required | Native CDC with rivven-connect |
| External schema registry | Integrated rivven-schema registry |
| Complex operational overhead | Sensible defaults, auto-create topics |
Key Features
π High Performance
- Lock-free architecture with zero-copy I/O
- Batch APIs for maximum throughput
- LZ4/Zstd/Snappy compression for efficient storage
- Sticky partitioning for optimal batching
π Change Data Capture
- PostgreSQL CDC with logical replication
- MySQL CDC with binlog streaming
- Auto-provisioning of replication slots and publications
- 17 built-in transforms (SMTs) for data transformation
π Connectors
- Sources: PostgreSQL, MySQL, MQTT, SQS, Pub/Sub, HTTP
- Sinks: S3, GCS, Azure, Snowflake, BigQuery, Redshift, HTTP
- SDK for building custom connectors
π Schema Registry
- Avro, Protobuf, and JSON Schema support
- Standard wire format and REST API
- External registry integration (AWS Glue)
- Schema evolution with compatibility checking
π Enterprise Security
- TLS/mTLS for transport encryption
- SCRAM-SHA-256 and OIDC authentication
- Cedar policy engine for fine-grained RBAC
- Credential isolation between components
βΈοΈ Cloud Native
- Kubernetes Operator with CRDs
- Prometheus metrics built-in
- Tiered storage (S3, GCS, Azure, MinIO)
- Web dashboard for monitoring
Quick Start
Installation
# From crates.io
cargo install rivven rivvend rivven-connect rivven-schema
# Or with Docker
docker pull ghcr.io/hupe1980/rivvend:latest
Start the Broker
rivvend --dashboard
Publish & Consume
# Create a topic
rivven topic create events --partitions 3
# Publish messages
rivven produce events "Hello, Rivven!"
# Consume messages
rivven consume events --from-beginning
Stream CDC to Broker
# rivven-connect.yaml
version: "1.0"
broker:
bootstrap_servers:
- localhost:9092
sources:
orders:
connector: postgres-cdc
topic: cdc.orders
config:
host: localhost
database: shop
user: postgres
password: ${POSTGRES_PASSWORD}
sinks:
console:
connector: stdout
topics: [cdc.orders]
rivven-connect -c rivven-connect.yaml
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β RIVVEN ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββββββ ββββββββββββββββββββββββββββββββββ β
β β rivvend β β rivven-connect β β
β β (broker) ββββββββΊβ (connector runtime) β β
β β β proto β β β
β β β’ Storage β β Sources: postgres-cdc, mysql β β
β β β’ Replication β β Sinks: s3, snowflake, http β β
β β β’ Auth/RBAC β β Transforms: SMTs, filters β β
β ββββββββββββββββββββ βββββββββββββββββ¬βββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββββββ ββββββββββββββββββββββββββββββββββ β
β β rivven-operator β β rivven-schema β β
β β (kubernetes CRDs)β β (schema registry) β β
β ββββββββββββββββββββ ββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Documentation
| Guide | Description |
|---|---|
| Getting Started | Installation and first steps |
| Architecture | System design and components |
| CDC Guide | Change Data Capture setup |
| Connectors | Source and sink configuration |
| Schema Registry | Avro, Protobuf, and JSON Schema |
| Security | Authentication, TLS, and RBAC |
| Kubernetes | Operator and Helm deployment |
| Tiered Storage | Hot/warm/cold storage tiers |
License
Licensed under the Apache License, Version 2.0.