Table of Contents

Interface IProducer

Namespace
Silverback.Messaging.Broker
Assembly
Silverback.Integration.dll

Produces the messages to an endpoint.

public interface IProducer

Properties

DisplayName

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

string DisplayName { get; }

Property Value

string

EndpointConfiguration

Gets the endpoint configuration.

ProducerEndpointConfiguration EndpointConfiguration { get; }

Property Value

ProducerEndpointConfiguration

Name

Gets the producer name.

string Name { get; }

Property Value

string

Methods

Produce(IOutboundEnvelope)

Publishes the specified message.

IBrokerMessageIdentifier? Produce(IOutboundEnvelope envelope)

Parameters

envelope IOutboundEnvelope

The envelope containing the message to be produced.

Returns

IBrokerMessageIdentifier

The IBrokerMessageIdentifier of the produced record.

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

Publishes the specified message.

void Produce(IOutboundEnvelope envelope, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)

Parameters

envelope IOutboundEnvelope

The envelope containing the message to be produced.

onSuccess Action<IBrokerMessageIdentifier>

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

onError Action<Exception>

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.

IBrokerMessageIdentifier? Produce(object? message, IReadOnlyCollection<MessageHeader>? headers = null)

Parameters

message object

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

Returns

IBrokerMessageIdentifier

The IBrokerMessageIdentifier of the produced record.

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

Publishes the specified message.

void Produce(object? message, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)

Parameters

message object

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

onSuccess Action<IBrokerMessageIdentifier>

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

onError Action<Exception>

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.

ValueTask<IBrokerMessageIdentifier?> ProduceAsync(IOutboundEnvelope envelope, CancellationToken cancellationToken = default)

Parameters

envelope IOutboundEnvelope

The envelope containing the message to be produced.

cancellationToken CancellationToken

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

Returns

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.

ValueTask<IBrokerMessageIdentifier?> ProduceAsync(object? message, IReadOnlyCollection<MessageHeader>? headers = null, CancellationToken cancellationToken = default)

Parameters

message object

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

cancellationToken CancellationToken

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

Returns

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.

void Produce<TState>(IOutboundEnvelope envelope, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)

Parameters

envelope IOutboundEnvelope

The envelope containing the message to be produced.

onSuccess Action<IBrokerMessageIdentifier, TState>

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

onError Action<Exception, TState>

The callback to be invoked when the produce fails.

state TState

The state object to be passed to the callbacks.

Type Parameters

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.

void Produce<TState>(object? message, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)

Parameters

message object

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

onSuccess Action<IBrokerMessageIdentifier, TState>

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

onError Action<Exception, TState>

The callback to be invoked when the produce fails.

state TState

The state object to be passed to the callbacks.

Type Parameters

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.

IBrokerMessageIdentifier? RawProduce(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers = null)

Parameters

messageContent byte[]

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

Returns

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.

void RawProduce(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)

Parameters

messageContent byte[]

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

onSuccess Action<IBrokerMessageIdentifier>

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

onError Action<Exception>

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.

IBrokerMessageIdentifier? RawProduce(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers = null)

Parameters

messageStream Stream

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

Returns

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.

void RawProduce(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?> onSuccess, Action<Exception> onError)

Parameters

messageStream Stream

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

onSuccess Action<IBrokerMessageIdentifier>

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

onError Action<Exception>

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.

ValueTask<IBrokerMessageIdentifier?> RawProduceAsync(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers = null, CancellationToken cancellationToken = default)

Parameters

messageContent byte[]

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

cancellationToken CancellationToken

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

Returns

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.

ValueTask<IBrokerMessageIdentifier?> RawProduceAsync(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers = null, CancellationToken cancellationToken = default)

Parameters

messageStream Stream

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

cancellationToken CancellationToken

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

Returns

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.

void RawProduce<TState>(byte[]? messageContent, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)

Parameters

messageContent byte[]

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

onSuccess Action<IBrokerMessageIdentifier, TState>

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

onError Action<Exception, TState>

The callback to be invoked when the produce fails.

state TState

The state object to be passed to the callbacks.

Type Parameters

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.

void RawProduce<TState>(Stream? messageStream, IReadOnlyCollection<MessageHeader>? headers, Action<IBrokerMessageIdentifier?, TState> onSuccess, Action<Exception, TState> onError, TState state)

Parameters

messageStream Stream

The message.

headers IReadOnlyCollection<MessageHeader>

The optional message headers.

onSuccess Action<IBrokerMessageIdentifier, TState>

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

onError Action<Exception, TState>

The callback to be invoked when the produce fails.

state TState

The state object to be passed to the callbacks.

Type Parameters

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