Struct nakadion::consumer::Builder[][src]

#[non_exhaustive]
pub struct Builder { pub subscription_id: Option<SubscriptionId>, pub instrumentation: Option<Instrumentation>, pub tick_interval_millis: Option<TickIntervalMillis>, pub handler_inactivity_timeout_secs: Option<HandlerInactivityTimeoutSecs>, pub partition_inactivity_timeout_secs: Option<PartitionInactivityTimeoutSecs>, pub stream_dead_policy: Option<StreamDeadPolicy>, pub warn_no_frames_secs: Option<WarnNoFramesSecs>, pub warn_no_events_secs: Option<WarnNoEventsSecs>, pub dispatch_mode: Option<DispatchMode>, pub log_partition_events_mode: Option<LogPartitionEventsMode>, pub commit_config: CommitConfig, pub connect_config: ConnectConfig, }
Expand description

Creates a Consumer

This struct configures and creates a consumer. Before a consumer is build the given values will be validated and defaults will be applied.

The Builder can be created and updated from the environment. When updated from the environment only those values will be updated which were not set before.

De-/Serialization

The Builder supports serialization but the instrumentation will never be part of any serialization and therefore default to None

Environment

When initialized/updated from the environment the following environment variable are used which by are by default prefixed with “NAKADION_” or a custom prefix “_”:

For Nakadion itself:

  • “SUBSCRIPTION_ID”
  • “TICK_INTERVAL_MILLIS”
  • “INACTIVITY_TIMEOUT_SECS”
  • “STREAM_DEAD_POLICY”
  • “WARN_STREAM_STALLED_SECS”
  • “dispatch_mode”
  • “COMMIT_STRATEGY”
  • “ABORT_CONNECT_ON_AUTH_ERROR”
  • “ABORT_CONNECT_ON_SUBSCRIPTION_NOT_FOUND”
  • “CONNECT_STREAM_RETRY_MAX_DELAY_SECS”
  • “CONNECT_STREAM_TIMEOUT_SECS”
  • “COMMIT_ATTEMPT_TIMEOUT_MILLIS”
  • “COMMIT_RETRY_DELAY_MILLIS”

For stream_parameters:

  • “STREAM_MAX_UNCOMMITTED_EVENTS”
  • “STREAM_BATCH_LIMIT”
  • “STREAM_LIMIT”
  • “STREAM_BATCH_FLUSH_TIMEOUT_SECS”
  • “STREAM_BATCH_TIMESPAN_SECS”
  • “STREAM_TIMEOUT_SECS”
  • “STREAM_COMMIT_TIMEOUT_SECS”

Fields (Non-exhaustive)

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
subscription_id: Option<SubscriptionId>

The SubscriptionId of the subscription to be consumed.

This value must be set.

instrumentation: Option<Instrumentation>

The instrumentation to be used to generate metrics

tick_interval_millis: Option<TickIntervalMillis>

The internal tick interval.

This triggers internal notification used to monitor the state of the currently consumed stream.

handler_inactivity_timeout_secs: Option<HandlerInactivityTimeoutSecs>

The time after which a handler is considered inactive.

If no batches have been processed for the given amount of time, the handler will be notified by calling its on_inactive method.

The default is never.

partition_inactivity_timeout_secs: Option<PartitionInactivityTimeoutSecs>

The time after which a partition is considered inactive.

If no batches have been processed for the given amount of time, the partition will be considered inactive.

The default is 90 seconds.

stream_dead_policy: Option<StreamDeadPolicy>

The time after which a stream is considered stuck and has to be aborted.

warn_no_frames_secs: Option<WarnNoFramesSecs>

Emits a warning when no frames (lines) were received from Nakadi for the given time.

warn_no_events_secs: Option<WarnNoEventsSecs>

Emits a warning when no events were received from Nakadi for the given time.

dispatch_mode: Option<DispatchMode>

Defines how batches are internally dispatched.

This e.g. configures parallelism.

log_partition_events_mode: Option<LogPartitionEventsMode>

Configure how partition events are logged.

commit_config: CommitConfig

Defines when to commit cursors.

It is recommended to set this value instead of letting Nakadion determine defaults.

connect_config: ConnectConfig

Implementations

Initializes all fields from environment variables prefixed with “NAKADION_”

Initializes all fields from environment variables prefixed with “[prefix]_” The underscore is omitted if prefix is empty

Initializes all fields from environment variables without any prefix

Updates all not yet set fields from environment variables prefixed with “NAKADION_”

Updates all not yet set fields from environment variables prefixed with “[prefix]_” The underscore is omitted if prefix is empty

Updates all not yet set fields from environment variables without any prefix

The SubscriptionId of the subscription to be consumed.

This value must be set.

Parameters that configure the stream to be consumed.

This are within the connect_config so that these will be created with defaults if not already there

The instrumentation to be used to generate metrics

The internal tick interval.

This triggers internal notification used to monitor the state of the currently consumed stream.

The time after which a handler is considered inactive.

If no batches have been processed for the given amount of time, the handler will be notified by calling its on_inactive method.

The default is never.

The time after which a partition is considered inactive.

If no batches have been processed for the given amount of time, the partition will be considered inactive.

The default is 90 seconds.

Define when a stream is considered stuck/dead and has to be aborted.

Emits a warning when no frames (lines) were received from Nakadi for the given time.

Emits a warning when no events were received from Nakadi for the given time.

Defines how batches are internally dispatched.

This e.g. configures parallelism.

Configure how partition events are logged.

Defines how connect to nakadi to consume events.

Defines how connect to Nakadi.

Modify the current ConnectConfig with a closure.

If these have not been set ConnectConfig::default() will be passed into the closure.

Modify the current ConnectConfig with a closure.

If these have not been set ConnectConfig::default() will be passed into the closure.

If the closure fails, the whole Builder will fail.

Modify the current CommitConfig with a closure.

If these have not been set CommitConfig::default() will be passed into the closure.

Modify the current CommitConfig with a closure.

If these have not been set CommitConfig::default() will be passed into the closure.

If the closure fails, the whole Builder will fail.

Modify the current StreamParameters with a closure.

If these have not been set StreamParameters::default() will be passed into the closure.

Modify the current StreamParameters with a closure.

If these have not been set StreamParameters::default() will be passed into the closure.

If the closure fails, the whole Builder will fail.

Use the given Metrix instrumentation as the instrumentation

Create new Metrix instrumentation and put it into the given processor with the optional name.

Applies the defaults to all values that have not been set so far.

Create a Consumer

Create a Consumer which tracks stats about the stream and exposes them to the instrumentation set with the builder.

Disabled if no instrumentation is set.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Deserialize this value from the given Serde deserializer. Read more

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more