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