Table of Contents

RabbitMqEventBus Class

Definition

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

public class RabbitMqEventBus : RabbitMqMessage, IDisposable, IAsyncDisposable, IAsyncHealthCheckProvider<IConnection>, IPublishSubscribeChannel<IIntegrationEvent>, IPublisher<IIntegrationEvent>, ISubscriber<IIntegrationEvent>
Inheritance
object
RabbitMqEventBus
Implements
Derived
Inherited Members

Examples

RabbitMqEventBus publishes and subscribes to integration events through RabbitMQ. Configure it with RabbitMqEventBusOptions and use it as IPublishSubscribeChannel<IIntegrationEvent>.

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

namespace ExampleApp;

public class RabbitMqEventBusConfig
{
    public static RabbitMqEventBusOptions CreateOptions() => new RabbitMqEventBusOptions { AmqpUrl = new Uri("amqp://guest:guest@localhost:5672"), ExchangeName = "events" };
    public static IPublishSubscribeChannel<IIntegrationEvent> AsChannel(RabbitMqEventBus bus) => bus;
}

Constructors

Name Description
RabbitMqEventBus(IMarshaller, RabbitMqEventBusOptions)

Initializes a new instance of the RabbitMqEventBus class.

Methods

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

Publishes the specified integration event message asynchronously to the configured RabbitMQ exchange.

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

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

See Also