Class KafkaTransactionalProducer
Produces the messages to an endpoint.
Implements
Inherited Members
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 |
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).