pub struct AnalyticsStreamKafka {
pub rest_proxy_url: String,
pub headers: BTreeMap<String, String>,
pub timeout_ms: u64,
pub max_attempts: u32,
pub backoff_base_ms: u64,
pub backoff_cap_ms: u64,
}Expand description
The Kafka batch sink (SCALE-08, #187,
gateway.analytics_stream.sink.kafka). Produces each flushed
batch as NDJSON messages to a Kafka topic via a Kafka REST Proxy
(HTTP-based, no native client dependency). The REST Proxy
endpoint receives the batch as an HTTP POST with the
Content-Type: application/vnd.kafka.binary.v2+json media type;
each NDJSON line becomes a Kafka message value (base64 encoded
per the REST Proxy spec). TLS is via https://; SASL auth is via
headers (e.g. Authorization: Basic ...).
Fields§
§rest_proxy_url: StringAbsolute http:// or https:// URL of the Kafka REST Proxy
endpoint for producing to the topic, e.g.
https://kafka-rest:8082/topics/<topic>. https:// verifies
against the public webpki root set.
headers: BTreeMap<String, String>Headers sent on every batch delivery (e.g. the REST Proxy’s
auth token, Authorization: Basic ... for SASL). Values may
be inline or ${ENV_NAME} / ${file:/path} secret references
(DW-045), resolved at config-compile time; inline values are
redacted in every config echo.
timeout_ms: u64TOTAL budget for one batch delivery (all retry attempts share
it), in milliseconds. Default 5000. Validation enforces
1..=limits::MAX_WEBHOOK_TIMEOUT_MS (the shared engine’s
bound).
max_attempts: u32Max delivery attempts per batch. Default 3.
backoff_base_ms: u64First backoff between batch attempts, doubling per retry up to
backoff_cap_ms. Default 250.
backoff_cap_ms: u64Upper bound on the computed backoff. Default 4000; must be >=
backoff_base_ms.
Trait Implementations§
Source§impl Clone for AnalyticsStreamKafka
impl Clone for AnalyticsStreamKafka
Source§fn clone(&self) -> AnalyticsStreamKafka
fn clone(&self) -> AnalyticsStreamKafka
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnalyticsStreamKafka
impl Debug for AnalyticsStreamKafka
Source§impl<'de> Deserialize<'de> for AnalyticsStreamKafka
impl<'de> Deserialize<'de> for AnalyticsStreamKafka
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for AnalyticsStreamKafka
impl JsonSchema for AnalyticsStreamKafka
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for AnalyticsStreamKafka
impl PartialEq for AnalyticsStreamKafka
Source§impl Serialize for AnalyticsStreamKafka
impl Serialize for AnalyticsStreamKafka
impl StructuralPartialEq for AnalyticsStreamKafka
Auto Trait Implementations§
impl Freeze for AnalyticsStreamKafka
impl RefUnwindSafe for AnalyticsStreamKafka
impl Send for AnalyticsStreamKafka
impl Sync for AnalyticsStreamKafka
impl Unpin for AnalyticsStreamKafka
impl UnwindSafe for AnalyticsStreamKafka
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more