NatsEventBus Class
Definition
- Namespace
- Savvyio.Extensions.NATS.EventDriven
- Assemblies
- 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
-
objectNatsEventBus
- 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
IPublishSubscribeChannel<TRequest>