road-runner-common 0.8.0

Shared Rust utilities for exchange ecosystem backend services.
Documentation
//! Standardized durable producer settings.

use super::settings::{KafkaSettings, Setting};

/// Producer settings with the platform's standard **durable** delivery semantics
/// (apply to your own `rdkafka::ClientConfig`; also set `client.id = <service>`):
///
/// - `acks=all` — wait for all in-sync replicas (pair with broker
///   `min.insync.replicas>=2`).
/// - `enable.idempotence=true` — no duplicates on retry.
/// - `compression.type=lz4`.
pub fn producer_settings(settings: &KafkaSettings) -> Vec<Setting> {
    let mut s = settings.security_settings();
    s.extend([
        ("acks", "all".to_string()),
        ("enable.idempotence", "true".to_string()),
        ("max.in.flight.requests.per.connection", "5".to_string()),
        ("compression.type", "lz4".to_string()),
        ("message.timeout.ms", "30000".to_string()),
    ]);
    s
}