Overview of ZIO Kafka Features
masterZIO Kafka is a ZIO-native client for Apache Kafka that provides a high-level, purely functional, and streams-based interface. It wraps the Java Kafka client to offer declarative concurrency via zio-streams.
Key Capabilities
Consuming:
- Two API Styles: Streaming API and ZIO workflow-based API.
- High Throughput: Supports parallel partition processing, batched processing, and configurable per-partition pre-fetching with back-pressure.
- Reliability: The only async Kafka consumer (as far as known) that prevents duplicates after a rebalance. Supports automatic or manual starting offsets and external commits.
- Error Handling: Retries after authentication/authorization errors and detects silent authorization failures (e.g., when a READ ACL is revoked at runtime).
- Observability: Exposes metrics and a diagnostics API.
Producing:
- Two API Styles: Streaming API and ZIO workflow-based API.
- High Throughput: Supports batching for maximum performance.
- Customization: Supports custom serialization and optional broker acknowledgements.
- Reliability: Optional retries after authentication/authorization errors.
- Observability: Exposes metrics.
Admin API:
- Exposes all Java Admin client methods through a ZIO-based interface.
- Provides safer operations by waiting for the operation to complete before returning.