Table of Contents

AzureEventBus Class

Definition

Provides a combined Azure Event Grid/Azure Storage Queue implementation of the IPublishSubscribeChannel<TRequest>.

public class AzureEventBus : AzureQueue<IIntegrationEvent>, IPublishSubscribeChannel<IIntegrationEvent>, IPublisher<IIntegrationEvent>, ISubscriber<IIntegrationEvent>, IHealthCheckProvider<Uri>
Inheritance
object
AzureEventBus
Implements
Derived
Inherited Members

Examples

AzureEventBus publishes and receives integration events through Azure Queue Storage. Configure it with AzureQueueOptions and an IMarshaller instance, then use it as IPublishSubscribeChannel<IIntegrationEvent>.

using Savvyio.EventDriven;
using Savvyio.Extensions.QueueStorage;
using Savvyio.Extensions.QueueStorage.EventDriven;
using Savvyio.Messaging;

namespace ExampleApp;

public class AzureEventBusConfig
{
    public static AzureQueueOptions CreateOptions()
    {
        return new AzureQueueOptions
        {
            ConnectionString = "UseDevelopmentStorage=true",
            QueueName = "account-integration-events"
        };
    }

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

Constructors

Name Description
AzureEventBus(IMarshaller, AzureQueueOptions, AzureEventBusOptions)

Initializes a new instance of the AzureEventBus class.

AzureEventBus(IMarshaller, AzureQueueOptions, AzureEventBusOptions, QueueServiceClient, QueueClient, EventGridPublisherClient)

Initializes a new instance of the AzureEventBus class with testable Azure clients.

Fields

Name Description
CloudEventTypeExtensionAttribute

The attribute name for the CloudEvent type extension.

Methods

Name Description
GetHealthCheckTarget()

Gets the Uri representing the health check endpoint for the configured Azure Event Grid topic.

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

Publishes the specified message asynchronous using Publish-Subscribe Channel/Pub-Sub MEP.

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

Subscribe to one or more message(s) asynchronous using Publish-Subscribe Channel/Pub-Sub MEP.