from collections import defaultdict
from dataclasses import dataclass, field
from heizer.types import Any, Dict
# confluent kafka configs
# https://docs.confluent.io/platform/current/clients/confluent-kafka-python/html/index.html#kafka-client-configuration
[docs]@dataclass
class BaseConfig:
"""
Base configurations
"""
bootstrap_servers: str
[docs]@dataclass
class ProducerConfig(BaseConfig):
"""
Configuration class for producer.
"""
other_configs: Dict[str, Any] = field(default_factory=defaultdict)
[docs]@dataclass
class ConsumerConfig(BaseConfig):
"""
Configuration class for consumer.
"""
group_id: str
auto_offset_reset: str = "earliest"
other_configs: Dict[str, Any] = field(default_factory=defaultdict)
enable_auto_commit: bool = False