Table of Contents

Class NatsEventBus

Namespace
Savvyio.Extensions.NATS.EventDriven
Assembly
Savvyio.Extensions.NATS.dll

Provides a NATS implementation of the IPublishSubscribeChannel<TRequest> for integration event messages.

public class NatsEventBus : NatsMessage, IDisposable, IAsyncDisposable, IHealthCheckProvider<INatsConnection>, IPublishSubscribeChannel<IIntegrationEvent>, IPublisher<IIntegrationEvent>, ISubscriber<IIntegrationEvent>
Inheritance
NatsEventBus
Implements
IHealthCheckProvider<INatsConnection>
Derived
Inherited Members

Constructors

NatsEventBus(IMarshaller, NatsEventBusOptions)

Initializes a new instance of the NatsEventBus class.

public NatsEventBus(IMarshaller marshaller, NatsEventBusOptions options)

Parameters

marshaller IMarshaller

The marshaller used for serializing and deserializing messages.

options NatsEventBusOptions

The NatsEventBusOptions used to configure this instance.

Exceptions

ArgumentNullException

marshaller cannot be null - or - options cannot be null.

ArgumentException

options are not in a valid state.

Methods

PublishAsync(IMessage<IIntegrationEvent>, Action<AsyncOptions>)

Publishes the specified integration event message asynchronously to the configured NATS subject.

public Task PublishAsync(IMessage<IIntegrationEvent> message, Action<AsyncOptions> setup = null)

Parameters

message IMessage<IIntegrationEvent>

The message to publish.

setup Action<AsyncOptions>

The AsyncOptions which may be configured.

Returns

Task

A Task that represents the asynchronous operation.

SubscribeAsync(Func<IMessage<IIntegrationEvent>, CancellationToken, Task>, Action<SubscribeAsyncOptions>)

Subscribes to integration event messages from the configured NATS subject and invokes the specified asynchronous handler for each received message.

public Task SubscribeAsync(Func<IMessage<IIntegrationEvent>, CancellationToken, Task> asyncHandler, Action<SubscribeAsyncOptions> setup = null)

Parameters

asyncHandler Func<IMessage<IIntegrationEvent>, CancellationToken, Task>

The function delegate that will handle the message.

setup Action<SubscribeAsyncOptions>

The SubscribeAsyncOptions which may be configured.

Returns

Task

A Task that represents the asynchronous operation.

See Also