Show / Hide Table of Contents

    Interface IProducer

    Produces the messages to an endpoint.

    Namespace: Silverback.Messaging.Broker
    Assembly: Silverback.Integration.dll
    Syntax
    public interface IProducer

    Properties

    DisplayName

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

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

    EndpointConfiguration

    Gets the endpoint configuration.

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

    Name

    Gets the producer name.

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

    Methods

    Produce(IOutboundEnvelope)

    Publishes the specified message.

    Declaration
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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).

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