# ========================= # Kafka / Redpanda # ========================= REDPANDA_VERSION=v26.2.3 # Used by Python applications running on the host. KAFKA_BOOTSTRAP_SERVERS=localhost:19092 # Used by containers communicating inside the Docker network. KAFKA_INTERNAL_BOOTSTRAP_SERVERS=redpanda:9092 # Raw CDR topic KAFKA_RAW_TOPIC=cdr.raw KAFKA_RAW_TOPIC_PARTITIONS=3 KAFKA_RAW_TOPIC_REPLICATION_FACTOR=1 KAFKA_RAW_TOPIC_RETENTION_MS=86400000 KAFKA_RAW_TOPIC_COMPRESSION=lz4 # Dead Letter Queue KAFKA_DLQ_TOPIC=cdr.raw.dlq KAFKA_DLQ_TOPIC_PARTITIONS=1 KAFKA_DLQ_TOPIC_REPLICATION_FACTOR=1 KAFKA_DLQ_TOPIC_RETENTION_MS=604800000 # ========================= # Processing Worker # ========================= WORKER_INSTANCE_ID=worker-1 KAFKA_AUTO_OFFSET_RESET=earliest KAFKA_CONSUMER_POLL_TIMEOUT_SECONDS=1 KAFKA_DLQ_DELIVERY_TIMEOUT_SECONDS=5 KAFKA_CONSUMER_GROUP=cdr-processing-workers # ========================= # API ingestion # ========================= API_QUEUE_SIZE=10000 KAFKA_DELIVERY_TIMEOUT_SECONDS=4 KAFKA_MESSAGE_TIMEOUT_MS=3000 KAFKA_LINGER_MS=5 KAFKA_BATCH_SIZE=131072 KAFKA_PRODUCER_MAX_MESSAGES=100000 # ========================= # ClickHouse # ========================= CLICKHOUSE_VERSION=26.8.7.19 # Used by Python applications running directly on the host. CLICKHOUSE_HOST=localhost # Used later by Dockerized API/worker services. CLICKHOUSE_INTERNAL_HOST=clickhouse CLICKHOUSE_PORT=8123 CLICKHOUSE_HTTP_HOST_PORT=8123 CLICKHOUSE_DATABASE=telecom CLICKHOUSE_USER=telecom CLICKHOUSE_PASSWORD=telecom_dev_password # ========================= # ClickHouse Reliability # ========================= CLICKHOUSE_MAX_INSERT_ATTEMPTS=3 CLICKHOUSE_RETRY_BASE_DELAY_SECONDS=0.5 CLICKHOUSE_CONNECT_TIMEOUT_SECONDS=5 CLICKHOUSE_SEND_RECEIVE_TIMEOUT_SECONDS=10 # ========================= # Worker batching # ========================= BATCH_SIZE=1000 BATCH_FLUSH_INTERVAL_SECONDS=2 # ========================= # Worker Observability # ========================= WORKER_HTTP_HOST=0.0.0.0 WORKER_HTTP_PORT=8001 # API uses this while both services run directly on the host. WORKER_STATS_URL=http://localhost:8001/internal/stats WORKER_STATS_TIMEOUT_SECONDS=2 # ========================= # Docker Host Ports # ========================= API_HOST_PORT=8000 WORKER_HTTP_HOST_PORT=8001