Show / Hide Table of Contents

    Class KafkaTransactionalProducer

    Produces the messages to an endpoint.

    Inheritance
    object
    KafkaTransactionalProducer
    Implements
    IProducer
    Inherited Members
    object.GetType()
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    Namespace: Silverback.Messaging.Broker
    Assembly: Silverback.Integration.Kafka.dll
    Syntax
    public sealed class KafkaTransactionalProducer : IProducer

    Constructors

    KafkaTransactionalProducer(string, KafkaProducerConfiguration, IKafkaTransactionalProducerCollection)

    Initializes a new instance of the KafkaTransactionalProducer class.

    Declaration
    public KafkaTransactionalProducer(string name, KafkaProducerConfiguration configuration, IKafkaTransactionalProducerCollection transactionalProducers)
    Parameters
    Type Name Description
    string name

    The producer identifier.

    KafkaProducerConfiguration configuration

    The configuration containing only the actual endpoint.

    IKafkaTransactionalProducerCollection transactionalProducers

    The IKafkaTransactionalProducerCollection.

    Properties

    Configuration

    Gets the producer configuration.

    Declaration
    public KafkaProducerConfiguration Configuration { get; }
    Property Value
    Type Description
    KafkaProducerConfiguration

    DisplayName

    Gets the name to be displayed in the human-targeted output (e.g. logs, health checks result, etc.).

    Declaration
    public string DisplayName { get; }
    Property Value
    Type Description
    string

    EndpointConfiguration

    Gets the endpoint configuration.

    Declaration
    public ProducerEndpointConfiguration EndpointConfiguration { get; }
    Property Value
    Type Description
    ProducerEndpointConfiguration

    Name

    Gets the producer name.

    Declaration
    public string Name { get; }
    Property Value
    Type Description
    string

    Methods

    Produce(IOutboundEnvelope)

    Publishes the specified message.

    Declaration
    public IBrokerMessageIdentifier? Produce(IOutboundEnvelope envelope)
    Parameters
    Type Name Description
    IOutboundEnvelope envelope

    The envelope containing the message to be produced.

    Returns
    Type Description
    IBrokerMessageIdentifier

    The IBrokerMessageIdentifier of the produced record.

    Produce(IOutboundEnvelope, Action<IBrokerMessageIdentifier?>, Action<Exception>)

    Publishes the specified message.

    Declaration
    public void Produce(IOutboundEnvelope envelope, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)
    Parameters
    Type Name Description
    IOutboundEnvelope envelope

    The envelope containing the message to be produced.

    Action<IBrokerMessageIdentifier> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception> onError

    The callback to be invoked when the produce fails.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    Produce(object?, IReadOnlyCollection<MessageHeader>?)

    Publishes the specified message.

    Declaration
    public IBrokerMessageIdentifier Produce(object? message, IReadOnlyCollection<MessageHeader>? headers = null)
    Parameters
    Type Name Description
    object message

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Returns
    Type Description
    IBrokerMessageIdentifier

    The IBrokerMessageIdentifier of the produced record.

    Produce(object?, IReadOnlyCollection<MessageHeader>?, Action<IBrokerMessageIdentifier?>, Action<Exception>)

    Publishes the specified message.

    Declaration
    public void Produce(object? message, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)
    Parameters
    Type Name Description
    object message

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Action<IBrokerMessageIdentifier> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception> onError

    The callback to be invoked when the produce fails.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    ProduceAsync(IOutboundEnvelope, CancellationToken)

    Publishes the specified message.

    Declaration
    public ValueTask<IBrokerMessageIdentifier?> ProduceAsync(IOutboundEnvelope envelope, CancellationToken cancellationToken = default)
    Parameters
    Type Name Description
    IOutboundEnvelope envelope

    The envelope containing the message to be produced.

    CancellationToken cancellationToken

    The cancellation token that can be used to cancel the operation.

    Returns
    Type Description
    ValueTask<IBrokerMessageIdentifier>

    A ValueTask<TResult> representing the asynchronous operation. The ValueTask result contains the IBrokerMessageIdentifier of the produced record.

    ProduceAsync(object?, IReadOnlyCollection<MessageHeader>?, CancellationToken)

    Publishes the specified message.

    Declaration
    public ValueTask<IBrokerMessageIdentifier?> ProduceAsync(object? message, IReadOnlyCollection<MessageHeader>? headers = null, CancellationToken cancellationToken = default)
    Parameters
    Type Name Description
    object message

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    CancellationToken cancellationToken

    The cancellation token that can be used to cancel the operation.

    Returns
    Type Description
    ValueTask<IBrokerMessageIdentifier>

    A ValueTask<TResult> representing the asynchronous operation. The ValueTask result contains the IBrokerMessageIdentifier of the produced record.

    Produce<TState>(IOutboundEnvelope, Action<IBrokerMessageIdentifier?, TState>, Action<Exception, TState>, TState)

    Publishes the specified message.

    Declaration
    public void Produce<TState>(IOutboundEnvelope envelope, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)
    Parameters
    Type Name Description
    IOutboundEnvelope envelope

    The envelope containing the message to be produced.

    Action<IBrokerMessageIdentifier, TState> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception, TState> onError

    The callback to be invoked when the produce fails.

    TState state

    The state object to be passed to the callbacks.

    Type Parameters
    Name Description
    TState

    The type of the state object to be passed to the callbacks.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    Produce<TState>(object?, IReadOnlyCollection<MessageHeader>?, Action<IBrokerMessageIdentifier?, TState>, Action<Exception, TState>, TState)

    Publishes the specified message.

    Declaration
    public void Produce<TState>(object? message, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)
    Parameters
    Type Name Description
    object message

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Action<IBrokerMessageIdentifier, TState> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception, TState> onError

    The callback to be invoked when the produce fails.

    TState state

    The state object to be passed to the callbacks.

    Type Parameters
    Name Description
    TState

    The type of the state object to be passed to the callbacks.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    RawProduce(byte[]?, IReadOnlyCollection<MessageHeader>?)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public IBrokerMessageIdentifier RawProduce(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers = null)
    Parameters
    Type Name Description
    byte[] messageContent

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Returns
    Type Description
    IBrokerMessageIdentifier

    The IBrokerMessageIdentifier of the produced record.

    RawProduce(byte[]?, IReadOnlyCollection<MessageHeader>?, Action<IBrokerMessageIdentifier?>, Action<Exception>)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public void RawProduce(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)
    Parameters
    Type Name Description
    byte[] messageContent

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Action<IBrokerMessageIdentifier> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception> onError

    The callback to be invoked when the produce fails.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    RawProduce(Stream?, IReadOnlyCollection<MessageHeader>?)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public IBrokerMessageIdentifier RawProduce(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers = null)
    Parameters
    Type Name Description
    Stream messageStream

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Returns
    Type Description
    IBrokerMessageIdentifier

    The IBrokerMessageIdentifier of the produced record.

    RawProduce(Stream?, IReadOnlyCollection<MessageHeader>?, Action<IBrokerMessageIdentifier?>, Action<Exception>)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public void RawProduce(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)
    Parameters
    Type Name Description
    Stream messageStream

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Action<IBrokerMessageIdentifier> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception> onError

    The callback to be invoked when the produce fails.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    RawProduceAsync(byte[]?, IReadOnlyCollection<MessageHeader>?, CancellationToken)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public ValueTask<IBrokerMessageIdentifier?> RawProduceAsync(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers = null, CancellationToken cancellationToken = default)
    Parameters
    Type Name Description
    byte[] messageContent

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    CancellationToken cancellationToken

    The cancellation token that can be used to cancel the operation.

    Returns
    Type Description
    ValueTask<IBrokerMessageIdentifier>

    A ValueTask<TResult> representing the asynchronous operation. The ValueTask result contains the IBrokerMessageIdentifier of the produced record.

    RawProduceAsync(Stream?, IReadOnlyCollection<MessageHeader>?, CancellationToken)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public ValueTask<IBrokerMessageIdentifier?> RawProduceAsync(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers = null, CancellationToken cancellationToken = default)
    Parameters
    Type Name Description
    Stream messageStream

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    CancellationToken cancellationToken

    The cancellation token that can be used to cancel the operation.

    Returns
    Type Description
    ValueTask<IBrokerMessageIdentifier>

    A ValueTask<TResult> representing the asynchronous operation. The ValueTask result contains the IBrokerMessageIdentifier of the produced record.

    RawProduce<TState>(byte[]?, IReadOnlyCollection<MessageHeader>?, Action<IBrokerMessageIdentifier?, TState>, Action<Exception, TState>, TState)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public void RawProduce<TState>(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)
    Parameters
    Type Name Description
    byte[] messageContent

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Action<IBrokerMessageIdentifier, TState> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception, TState> onError

    The callback to be invoked when the produce fails.

    TState state

    The state object to be passed to the callbacks.

    Type Parameters
    Name Description
    TState

    The type of the state object to be passed to the callbacks.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    RawProduce<TState>(Stream?, IReadOnlyCollection<MessageHeader>?, Action<IBrokerMessageIdentifier?, TState>, Action<Exception, TState>, TState)

    Publishes the specified message as-is, without sending it through the behaviors pipeline.

    Declaration
    public void RawProduce<TState>(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)
    Parameters
    Type Name Description
    Stream messageStream

    The message.

    IReadOnlyCollection<MessageHeader> headers

    The optional message headers.

    Action<IBrokerMessageIdentifier, TState> onSuccess

    The callback to be invoked when the message is successfully produced.

    Action<Exception, TState> onError

    The callback to be invoked when the produce fails.

    TState state

    The state object to be passed to the callbacks.

    Type Parameters
    Name Description
    TState

    The type of the state object to be passed to the callbacks.

    Remarks

    In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).

    Implements

    IProducer
    GitHub E-Mail
    ↑ Back to top © 2026 Sergio Aquilini