Table of Contents

Class NatsEventBus<TMarker>

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

Provides a default implementation of the NatsMessage class for messages holding an IIntegrationEvent implementation.

public class NatsEventBus<TMarker> : NatsEventBus, IDisposable, IAsyncDisposable, IHealthCheckProvider<INatsConnection>, IPublishSubscribeChannel<IIntegrationEvent, TMarker>, IPublishSubscribeChannel<IIntegrationEvent>, IPublisher<IIntegrationEvent, TMarker>, IPublisher<IIntegrationEvent>, ISubscriber<IIntegrationEvent, TMarker>, ISubscriber<IIntegrationEvent>, IDependencyInjectionMarker<TMarker>

Type Parameters

TMarker
Inheritance
NatsEventBus<TMarker>
Implements
IHealthCheckProvider<INatsConnection>
Inherited Members

Examples

NatsEventBus<TMarker> is the DI-registered NATS event bus with a lifetime marker. Register it with AddNatsEventBus and resolve it as NatsEventBus or IPublishSubscribeChannel<IIntegrationEvent>.

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

namespace ExampleApp;

public static class NatsBusUsage
{
    public static NatsEventBus GetBus(IServiceProvider provider)
    {
        return provider.GetRequiredService<NatsEventBus>();
    }

    public static IPublishSubscribeChannel<IIntegrationEvent> GetChannel(IServiceProvider provider)
    {
        return provider.GetRequiredService<IPublishSubscribeChannel<IIntegrationEvent>>();
    }

    public static IServiceCollection Register(IServiceCollection services)
    {
        services.AddSavvyIO();
        services.AddNatsEventBus(o => { o.NatsUrl = new Uri("nats://localhost:4222"); o.Subject = "events"; });
        return services;
    }
}

Constructors

NatsEventBus(IMarshaller, NatsEventBusOptions<TMarker>)

Initializes a new instance of the NatsEventBus class.

public NatsEventBus(IMarshaller marshaller, NatsEventBusOptions<TMarker> options)

Parameters

marshaller IMarshaller

The marshaller used for serializing and deserializing messages.

options NatsEventBusOptions<TMarker>

The options used to configure the NATS event bus.

Exceptions

ArgumentNullException

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

ArgumentException

options are not in a valid state.

See Also