llm_optimizer_collector/
lib.rs

1//! Feedback Collector
2//!
3//! This crate provides comprehensive feedback collection using OpenTelemetry
4//! for observability and Kafka for event streaming. It supports async collection,
5//! batching, buffering, resilient event processing, circuit breaker pattern,
6//! and backpressure handling for production reliability.
7
8pub mod backpressure;
9pub mod circuit_breaker;
10pub mod dead_letter_queue;
11pub mod feedback_collector;
12pub mod feedback_events;
13pub mod health;
14pub mod kafka_client;
15pub mod kafka_producer_with_dlq;
16pub mod rate_limiter;
17pub mod telemetry;
18
19pub use backpressure::{
20    BackpressureConfig, BackpressureError, BackpressureHandler, BackpressureStats, BufferLevel,
21    OverflowStrategy,
22};
23
24pub use circuit_breaker::{
25    CircuitBreaker, CircuitBreakerConfig, CircuitBreakerStats, CircuitState,
26};
27
28pub use dead_letter_queue::{
29    DLQConfig, DLQEntry, DLQError, DLQManager, DLQStats, DLQType, DeadLetterQueue, FileDLQ,
30    HybridDLQ, KafkaDLQ,
31};
32
33pub use feedback_collector::{
34    CollectorStats, FeedbackCollector, FeedbackCollectorBuilder, FeedbackCollectorConfig,
35    SubmitError, TrySubmitError,
36};
37
38pub use feedback_events::{
39    ExperimentResultEvent, FeedbackEvent, FeedbackEventBatch, HealthStatus, ModelResponseEvent,
40    PerformanceMetricsEvent, SystemHealthEvent, UserFeedbackEvent,
41};
42
43pub use health::{ComponentHealth, HealthChecker, HealthReport, HealthStatus as HealthCheckStatus};
44
45pub use kafka_client::{FeedbackEventHandler, FeedbackProducer, KafkaError, KafkaProducerConfig};
46
47pub use kafka_producer_with_dlq::{KafkaProducerWithDLQ, ProducerWithDLQError};
48
49pub use rate_limiter::{
50    RateLimitConfig, RateLimitError, RateLimitStats, RateLimiter, SourceIdentifier,
51    SourceIdentifierStrategy,
52};
53
54pub use telemetry::{TelemetryConfig, TelemetryError, TelemetryMetrics, TelemetryProvider};