Table of Contents

NatsEventBus Class

Definition

Namespace
Savvyio.Extensions.NATS.EventDriven
Assemblies
Savvyio.Extensions.NATS.dll
Source
src/Savvyio.Extensions.NATS/EventDriven/NatsEventBus.cs

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
object
NatsEventBus
Implements
IHealthCheckProvider<INatsConnection>
Derived
Inherited Members

Examples

NatsEventBus is the NATS JetStream event bus that publishes and subscribes to IMessage<IIntegrationEvent> envelopes. Configure it with NatsEventBusOptions and IMarshaller.

using System;
using Savvyio.EventDriven;
using Savvyio.Extensions.NATS.EventDriven;
using Savvyio.Messaging;

namespace ExampleApp;

public class NatsEventBusConfig
{
    public static NatsEventBusOptions CreateOptions()
    {
        return new NatsEventBusOptions
        {
            NatsUrl = new Uri("nats://localhost:4222"),
            Subject = "integration-events"
        };
    }

    public static IPublishSubscribeChannel<IIntegrationEvent> AsChannel(NatsEventBus bus) => bus;
}

Constructors

Name Description
NatsEventBus(IMarshaller, NatsEventBusOptions)

Initializes a new instance of the NatsEventBus class.

Methods

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

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

PublishMessageAsync(string, string, NatsHeaders, CancellationToken)

Publishes a serialized message to NATS.

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.

SubscribeMessagesAsync(string, NatsSubOpts, CancellationToken)

Subscribes to NATS messages.

See Also