Frequently Asked Questions

Common questions about Korvet.

General

What is Korvet?

Korvet is a Kafka-compatible streaming service with automatic hot/cold data tiering using Redis Streams and Delta Lake.

Why use Korvet instead of Kafka?

  • Lower cost: Automatic tiering to object storage reduces costs by 90%+

  • Simpler operations: No ZooKeeper, no partition rebalancing complexity

  • Redis integration: Leverage existing Redis infrastructure

  • Analytics-ready: Historical data in Delta Lake for Spark/Flink

Is Korvet production-ready?

Korvet is currently in active development. The Kafka protocol and Redis Streams integration are functional, but Delta Lake tiering is still being implemented.

Compatibility

Which Kafka clients work with Korvet?

Any Kafka client that supports the Kafka protocol should work. Tested clients include:

  • Java: kafka-clients

  • Python: kafka-python, confluent-kafka-python

  • Go: sarama

  • Node.js: kafkajs

What Kafka features are supported?

Currently supported:

  • Produce API

  • Fetch API

  • Topic metadata

  • Basic topic management

Not yet supported:

  • Consumer groups

  • Transactions

  • Exactly-once semantics

Can I migrate from Kafka to Korvet?

Yes, but with some considerations:

  • Consumer groups are not yet supported

  • Transactions are not supported

  • You’ll need to re-produce historical data or use a migration tool

Performance

What throughput can Korvet handle?

Performance depends on your Redis instance, but typical numbers:

  • Produce: 50,000+ messages/second per instance

  • Fetch: 100,000+ messages/second per instance

  • Latency: Sub-millisecond p99 for hot data

How do I scale Korvet?

Korvet is stateless and can be scaled horizontally:

  1. Run multiple Korvet instances

  2. Put a load balancer in front

  3. Clients connect to any instance

What are the resource requirements?

Minimum:

  • CPU: 1 core

  • Memory: 512MB

  • Redis: 7.0+ with Streams support

Recommended for production:

  • CPU: 2-4 cores

  • Memory: 2-4GB

  • Redis: Cluster or Enterprise for HA

Storage

How long can I keep data in hot storage?

As long as your Redis instance has capacity. Configure retention policies to automatically tier old data to cold storage.

What happens when Redis is full?

Configure tiering to automatically move old messages to Delta Lake before Redis fills up. You can also set Redis eviction policies.

Can I query historical data in Delta Lake?

Yes! Use Spark, Flink, Presto, Athena, or any Delta Lake-compatible tool to query historical messages.

Operations

How do I monitor Korvet?

Korvet exposes metrics via Prometheus and health checks via Spring Boot Actuator. See Monitoring.

How do I troubleshoot issues?

  1. Check logs (JSON format by default)

  2. Review metrics in Prometheus

  3. Check health endpoints

  4. See Troubleshooting guide

Can I run Korvet in Kubernetes?

Yes! See Deployment guide for Kubernetes manifests.

Development

How do I contribute to Korvet?

See the GitHub repository for contribution guidelines.

Where can I report bugs?

Is there a roadmap?

Check the GitHub issues and project boards for planned features.