Show / Hide Table of Contents

    Class KafkaDynamicProducerEndpointResolver<TMessage>

    Dynamically resolves the target topic and partition for each message being produced.

    Inheritance
    object
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>
    KafkaDynamicProducerEndpointResolver<TMessage>
    Implements
    IDynamicProducerEndpointResolver<KafkaProducerEndpoint>
    IDynamicProducerEndpointResolver
    IProducerEndpointResolver<KafkaProducerEndpoint>
    IProducerEndpointResolver
    IEquatable<DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>>
    IEquatable<KafkaDynamicProducerEndpointResolver<TMessage>>
    Inherited Members
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.GetEndpoint(IOutboundEnvelope)
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.GetEndpoint(IOutboundEnvelope, KafkaProducerEndpointConfiguration)
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.GetSerializedEndpoint(IOutboundEnvelope)
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.ToString()
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.GetHashCode()
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.Equals(object)
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.Equals(DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>)
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.<Clone>$()
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.RawName
    object.GetType()
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    Namespace: Silverback.Messaging.Producing.EndpointResolvers
    Assembly: Silverback.Integration.Kafka.dll
    Syntax
    public sealed record KafkaDynamicProducerEndpointResolver<TMessage> : DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>, IDynamicProducerEndpointResolver<KafkaProducerEndpoint>, IDynamicProducerEndpointResolver, IProducerEndpointResolver<KafkaProducerEndpoint>, IProducerEndpointResolver, IEquatable<DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>>, IEquatable<KafkaDynamicProducerEndpointResolver<TMessage>> where TMessage : class
    Type Parameters
    Name Description
    TMessage

    The type of the message being produced.

    Constructors

    KafkaDynamicProducerEndpointResolver(Func<IOutboundEnvelope<TMessage>, TopicPartition>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(Func<IOutboundEnvelope<TMessage>, TopicPartition> topicPartitionFunction)
    Parameters
    Type Name Description
    Func<IOutboundEnvelope<TMessage>, TopicPartition> topicPartitionFunction

    The function returning the target topic and partition index for the message being produced.

    KafkaDynamicProducerEndpointResolver(Func<IOutboundEnvelope<TMessage>, string>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(Func<IOutboundEnvelope<TMessage>, string> topicFunction)
    Parameters
    Type Name Description
    Func<IOutboundEnvelope<TMessage>, string> topicFunction

    The function returning the target topic for the message being produced.

    KafkaDynamicProducerEndpointResolver(Func<IOutboundEnvelope<TMessage>, string>, Func<IOutboundEnvelope<TMessage>, int>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(Func<IOutboundEnvelope<TMessage>, string> topicFunction, Func<IOutboundEnvelope<TMessage>, int> partitionFunction)
    Parameters
    Type Name Description
    Func<IOutboundEnvelope<TMessage>, string> topicFunction

    The function returning the target topic for the message being produced.

    Func<IOutboundEnvelope<TMessage>, int> partitionFunction

    The function returning the target partition index for the message being produced.

    KafkaDynamicProducerEndpointResolver(Func<TMessage?, TopicPartition>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(Func<TMessage?, TopicPartition> topicPartitionFunction)
    Parameters
    Type Name Description
    Func<TMessage, TopicPartition> topicPartitionFunction

    The function returning the target topic and partition index for the message being produced.

    KafkaDynamicProducerEndpointResolver(Func<TMessage?, string>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(Func<TMessage?, string> topicFunction)
    Parameters
    Type Name Description
    Func<TMessage, string> topicFunction

    The function returning the target topic for the message being produced.

    KafkaDynamicProducerEndpointResolver(Func<TMessage?, string>, Func<TMessage?, int>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(Func<TMessage?, string> topicFunction, Func<TMessage?, int> partitionFunction)
    Parameters
    Type Name Description
    Func<TMessage, string> topicFunction

    The function returning the target topic for the message being produced.

    Func<TMessage, int> partitionFunction

    The function returning the target partition index for the message being produced.

    KafkaDynamicProducerEndpointResolver(string, Func<IOutboundEnvelope<TMessage>, int>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(string topic, Func<IOutboundEnvelope<TMessage>, int> partitionFunction)
    Parameters
    Type Name Description
    string topic

    The target topic.

    Func<IOutboundEnvelope<TMessage>, int> partitionFunction

    The function returning the target partition index for the message being produced.

    KafkaDynamicProducerEndpointResolver(string, Func<IOutboundEnvelope<TMessage>, string[]>, Func<IOutboundEnvelope<TMessage>, int>?)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(string topicFormatString, Func<IOutboundEnvelope<TMessage>, string[]> topicArgumentsFunction, Func<IOutboundEnvelope<TMessage>, int>? partitionFunction = null)
    Parameters
    Type Name Description
    string topicFormatString

    The topic format string that will be combined with the arguments returned by the topicArgumentsFunction using a Format(string, params object[]).

    Func<IOutboundEnvelope<TMessage>, string[]> topicArgumentsFunction

    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 null the partition is automatically derived from the message key (use KafkaKeyMemberAttribute to specify a message key, otherwise a random one will be generated).

    KafkaDynamicProducerEndpointResolver(string, Func<TMessage?, int>)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(string topic, Func<TMessage?, int> partitionFunction)
    Parameters
    Type Name Description
    string topic

    The target topic.

    Func<TMessage, int> partitionFunction

    The function returning the target partition index for the message being produced.

    KafkaDynamicProducerEndpointResolver(string, Func<TMessage?, string[]>, Func<TMessage?, int>?)

    Initializes a new instance of the KafkaDynamicProducerEndpointResolver<TMessage> class.

    Declaration
    public KafkaDynamicProducerEndpointResolver(string topicFormatString, Func<TMessage?, string[]> topicArgumentsFunction, Func<TMessage?, int>? partitionFunction = null)
    Parameters
    Type Name Description
    string topicFormatString

    The topic format string that will be combined with the arguments returned by the topicArgumentsFunction using a Format(string, params object[]).

    Func<TMessage, string[]> topicArgumentsFunction

    The function returning the arguments to be used to format the string.

    Func<TMessage, int> partitionFunction

    The optional function returning the target partition index for the message being produced. If null the partition is automatically derived from the message key (use KafkaKeyMemberAttribute to specify a message key, otherwise a random one will be generated).

    Properties

    EqualityContract

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    protected override Type EqualityContract { get; }
    Property Value
    Type Description
    Type
    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.EqualityContract

    Methods

    DeserializeEndpoint(string, KafkaProducerEndpointConfiguration)

    Deserializes the endpoint from a string.

    Declaration
    protected override KafkaProducerEndpoint DeserializeEndpoint(string serializedEndpoint, KafkaProducerEndpointConfiguration configuration)
    Parameters
    Type Name Description
    string serializedEndpoint

    The serialized endpoint.

    KafkaProducerEndpointConfiguration configuration

    The endpoint configuration.

    Returns
    Type Description
    KafkaProducerEndpoint

    The deserialized endpoint.

    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.DeserializeEndpoint(string, KafkaProducerEndpointConfiguration)

    Equals(DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>?)

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    public override sealed bool Equals(DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>? other)
    Parameters
    Type Name Description
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration> other
    Returns
    Type Description
    bool
    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.Equals(DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>)

    Equals(KafkaDynamicProducerEndpointResolver<TMessage>?)

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    public bool Equals(KafkaDynamicProducerEndpointResolver<TMessage>? other)
    Parameters
    Type Name Description
    KafkaDynamicProducerEndpointResolver<TMessage> other
    Returns
    Type Description
    bool

    Equals(object?)

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    public override bool Equals(object? obj)
    Parameters
    Type Name Description
    object obj
    Returns
    Type Description
    bool
    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.Equals(object)

    GetEndpointCore(IOutboundEnvelope<TMessage>, KafkaProducerEndpointConfiguration)

    Gets the computed actual destination endpoint for the message being produced.

    Declaration
    protected override KafkaProducerEndpoint GetEndpointCore(IOutboundEnvelope<TMessage> envelope, KafkaProducerEndpointConfiguration configuration)
    Parameters
    Type Name Description
    IOutboundEnvelope<TMessage> envelope

    The envelope containing the message to be produced.

    KafkaProducerEndpointConfiguration configuration

    The endpoint configuration.

    Returns
    Type Description
    KafkaProducerEndpoint

    The ProducerEndpoint for the specified message.

    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.GetEndpointCore(IOutboundEnvelope<TMessage>, KafkaProducerEndpointConfiguration)

    GetHashCode()

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    int
    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.GetHashCode()

    PrintMembers(StringBuilder)

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    protected override bool PrintMembers(StringBuilder builder)
    Parameters
    Type Name Description
    StringBuilder builder
    Returns
    Type Description
    bool
    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.PrintMembers(StringBuilder)

    SerializeEndpoint(KafkaProducerEndpoint)

    Serializes the endpoint to a string.

    Declaration
    protected override string SerializeEndpoint(KafkaProducerEndpoint endpoint)
    Parameters
    Type Name Description
    KafkaProducerEndpoint endpoint

    The endpoint to be serialized.

    Returns
    Type Description
    string

    The serialized endpoint.

    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.SerializeEndpoint(KafkaProducerEndpoint)

    ToString()

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    public override string ToString()
    Returns
    Type Description
    string
    Overrides
    DynamicProducerEndpointResolver<TMessage, KafkaProducerEndpoint, KafkaProducerEndpointConfiguration>.ToString()

    Operators

    operator ==(KafkaDynamicProducerEndpointResolver<TMessage>?, KafkaDynamicProducerEndpointResolver<TMessage>?)

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    public static bool operator ==(KafkaDynamicProducerEndpointResolver<TMessage>? left, KafkaDynamicProducerEndpointResolver<TMessage>? right)
    Parameters
    Type Name Description
    KafkaDynamicProducerEndpointResolver<TMessage> left
    KafkaDynamicProducerEndpointResolver<TMessage> right
    Returns
    Type Description
    bool

    operator !=(KafkaDynamicProducerEndpointResolver<TMessage>?, KafkaDynamicProducerEndpointResolver<TMessage>?)

    Dynamically resolves the target topic and partition for each message being produced.

    Declaration
    public static bool operator !=(KafkaDynamicProducerEndpointResolver<TMessage>? left, KafkaDynamicProducerEndpointResolver<TMessage>? right)
    Parameters
    Type Name Description
    KafkaDynamicProducerEndpointResolver<TMessage> left
    KafkaDynamicProducerEndpointResolver<TMessage> right
    Returns
    Type Description
    bool

    Implements

    IDynamicProducerEndpointResolver<TEndpoint>
    IDynamicProducerEndpointResolver
    IProducerEndpointResolver<TEndpoint>
    IProducerEndpointResolver
    IEquatable<T>
    IEquatable<T>
    GitHub E-Mail
    ↑ Back to top © 2026 Sergio Aquilini