Class KafkaProducerEndpointBuilder
Builds the KafkaProducerEndpoint.
Inheritance
Implements
Inherited Members
Namespace: Silverback.Messaging.Configuration.Kafka
Assembly: Silverback.Integration.Kafka.dll
Syntax
public class KafkaProducerEndpointBuilder : ProducerEndpointBuilder<KafkaProducerEndpoint, IKafkaProducerEndpointBuilder>, IKafkaProducerEndpointBuilder, IProducerEndpointBuilder<IKafkaProducerEndpointBuilder>, IEndpointBuilder<IKafkaProducerEndpointBuilder>
Constructors
| Improve this doc View sourceKafkaProducerEndpointBuilder(KafkaClientConfig?, Type?, IEndpointsConfigurationBuilder?)
Initializes a new instance of the KafkaProducerEndpointBuilder class.
Declaration
public KafkaProducerEndpointBuilder(KafkaClientConfig? clientConfig = null, Type? messageType = null, IEndpointsConfigurationBuilder? endpointsConfigurationBuilder = null)
Parameters
| Type | Name | Description |
|---|---|---|
| KafkaClientConfig | clientConfig | The KafkaClientConfig to be used to initialize the KafkaProducerConfig. |
| Type | messageType | The type of the message being produced. |
| IEndpointsConfigurationBuilder | endpointsConfigurationBuilder | The optional reference to the IEndpointsConfigurationBuilder that instantiated the builder. |
Properties
| Improve this doc View sourceThis
Gets this instance.
Declaration
protected override IKafkaProducerEndpointBuilder This { get; }
Property Value
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder |
Overrides
Remarks
This is necessary to work around casting in the base classes.
Methods
| Improve this doc View sourceConfigure(Action<KafkaProducerConfig>)
Configures the Kafka client properties.
Declaration
public IKafkaProducerEndpointBuilder Configure(Action<KafkaProducerConfig> configAction)
Parameters
| Type | Name | Description |
|---|---|---|
| Action<KafkaProducerConfig> | configAction | An Action<T> that takes the KafkaProducerConfig and configures it. |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
CreateEndpoint()
Creates the endpoint to be configured according to the options stored in the builder.
Declaration
protected override KafkaProducerEndpoint CreateEndpoint()
Returns
| Type | Description |
|---|---|
| KafkaProducerEndpoint | The endpoint. |
Overrides
| Improve this doc View sourceProduceTo(Func<IOutboundEnvelope, IServiceProvider, string?>, Func<IOutboundEnvelope, IServiceProvider, int>?)
Specifies the name of the topic and optionally the target partition.
Declaration
public IKafkaProducerEndpointBuilder ProduceTo(Func<IOutboundEnvelope, IServiceProvider, string?> topicNameFunction, Func<IOutboundEnvelope, IServiceProvider, int>? partitionFunction = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Func<IOutboundEnvelope, IServiceProvider, string> | topicNameFunction | The function returning the topic name for the message being produced. If the function returns
|
| Func<IOutboundEnvelope, IServiceProvider, int> | partitionFunction | The optional function returning the target partition index for the message being produced. If |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
ProduceTo(Func<IOutboundEnvelope, string?>, Func<IOutboundEnvelope, int>?)
Specifies the name of the topic and optionally the target partition.
Declaration
public IKafkaProducerEndpointBuilder ProduceTo(Func<IOutboundEnvelope, string?> topicNameFunction, Func<IOutboundEnvelope, int>? partitionFunction = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Func<IOutboundEnvelope, string> | topicNameFunction | The function returning the topic name for the message being produced. If the function returns
|
| Func<IOutboundEnvelope, int> | partitionFunction | The optional function returning the target partition index for the message being produced. If |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
ProduceTo(string, Func<IOutboundEnvelope, string[]>, Func<IOutboundEnvelope, int>?)
Specifies the name of the topic and optionally the target partition.
Declaration
public IKafkaProducerEndpointBuilder ProduceTo(string topicNameFormatString, Func<IOutboundEnvelope, string[]> topicNameArgumentsFunction, Func<IOutboundEnvelope, int>? partitionFunction = null)
Parameters
| Type | Name | Description |
|---|---|---|
| string | topicNameFormatString | The endpoint name format string that will be combined with the arguments returned by the
|
| Func<IOutboundEnvelope, string[]> | topicNameArgumentsFunction | The function returning the arguments to be used to format the string. |
| Func<IOutboundEnvelope, int> | partitionFunction | The optional function returning the target partition index for the message being produced. If |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
ProduceTo(string, int?)
Specifies the name of the topic and optionally the target partition.
Declaration
public IKafkaProducerEndpointBuilder ProduceTo(string topicName, int? partition = null)
Parameters
| Type | Name | Description |
|---|---|---|
| string | topicName | The name of the topic. |
| int? | partition | The optional partition index. If |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
ProduceTo<TMessage>(Func<IOutboundEnvelope<TMessage>, IServiceProvider, string?>, Func<IOutboundEnvelope<TMessage>, IServiceProvider, int>?)
Specifies the name of the topic and optionally the target partition.
Declaration
public IKafkaProducerEndpointBuilder ProduceTo<TMessage>(Func<IOutboundEnvelope<TMessage>, IServiceProvider, string?> topicNameFunction, Func<IOutboundEnvelope<TMessage>, IServiceProvider, int>? partitionFunction = null) where TMessage : class
Parameters
| Type | Name | Description |
|---|---|---|
| Func<IOutboundEnvelope<TMessage>, IServiceProvider, string> | topicNameFunction | The function returning the topic name for the message being produced. If the function returns
|
| Func<IOutboundEnvelope<TMessage>, IServiceProvider, int> | partitionFunction | The optional function returning the target partition index for the message being produced. If |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
Type Parameters
| Name | Description |
|---|---|
| TMessage | The type of the messages being produced. |
ProduceTo<TMessage>(Func<IOutboundEnvelope<TMessage>, string?>, Func<IOutboundEnvelope<TMessage>, int>?)
Specifies the name of the topic and optionally the target partition.
Declaration
public IKafkaProducerEndpointBuilder ProduceTo<TMessage>(Func<IOutboundEnvelope<TMessage>, string?> topicNameFunction, Func<IOutboundEnvelope<TMessage>, int>? partitionFunction = null) where TMessage : class
Parameters
| Type | Name | Description |
|---|---|---|
| Func<IOutboundEnvelope<TMessage>, string> | topicNameFunction | The function returning the topic name for the message being produced. If the function returns
|
| Func<IOutboundEnvelope<TMessage>, int> | partitionFunction | The optional function returning the target partition index for the message being produced. If |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
Type Parameters
| Name | Description |
|---|---|
| TMessage | The type of the messages being produced. |
ProduceTo<TMessage>(string, Func<IOutboundEnvelope<TMessage>, string[]>, Func<IOutboundEnvelope<TMessage>, int>?)
Specifies the name of the topic and optionally the target partition.
Declaration
public IKafkaProducerEndpointBuilder ProduceTo<TMessage>(string topicNameFormatString, Func<IOutboundEnvelope<TMessage>, string[]> topicNameArgumentsFunction, Func<IOutboundEnvelope<TMessage>, int>? partitionFunction = null) where TMessage : class
Parameters
| Type | Name | Description |
|---|---|---|
| string | topicNameFormatString | The endpoint name format string that will be combined with the arguments returned by the
|
| Func<IOutboundEnvelope<TMessage>, string[]> | topicNameArgumentsFunction | The function returning the arguments to be used to format the string. |
| Func<IOutboundEnvelope<TMessage>, int> | partitionFunction | The optional function returning the target partition index for the message being produced. If |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
Type Parameters
| Name | Description |
|---|---|
| TMessage | The type of the messages being produced. |
UseEndpointNameResolver<TResolver>()
Specifies the type of the IKafkaProducerEndpointNameResolver to be used to resolve the actual endpoint name and partition.
Declaration
public IKafkaProducerEndpointBuilder UseEndpointNameResolver<TResolver>() where TResolver : IKafkaProducerEndpointNameResolver
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The IKafkaProducerEndpointBuilder so that additional calls can be chained. |
Type Parameters
| Name | Description |
|---|---|
| TResolver | The type of the IKafkaProducerEndpointNameResolver to be used. |
WithKafkaKey<TMessage>(Func<IOutboundEnvelope<TMessage>, object?>)
Uses the specified value provider function to set the kafka key for each produced message.
Declaration
public IKafkaProducerEndpointBuilder WithKafkaKey<TMessage>(Func<IOutboundEnvelope<TMessage>, object?> valueProvider) where TMessage : class
Parameters
| Type | Name | Description |
|---|---|---|
| Func<IOutboundEnvelope<TMessage>, object> | valueProvider | The value provider function. |
Returns
| Type | Description |
|---|---|
| IKafkaProducerEndpointBuilder | The endpoint builder so that additional calls can be chained. |
Type Parameters
| Name | Description |
|---|---|
| TMessage | The type of the messages to be enriched. |