Skip to content

SubscriberBoundDescriptor

SubscriberBoundDescriptor is the primary descriptor used to configure subscriber topology and runtime behavior.

It defines:

  • queue configuration;
  • exchange binding;
  • consumer settings;
  • retry behavior;
  • channel event monitoring.

Purpose

A subscriber descriptor describes how messages are consumed.

graph LR

    SubscriberBoundDescriptor --> Subscriber

    Subscriber --> RabbitMQ

High-Level Model

classDiagram

    class SubscriberBoundDescriptor

    class QueueDescriptor

    class ExchangeDescriptor

    class BinderDescriptor

    class RetryPolicyDescriptor

    SubscriberBoundDescriptor --> QueueDescriptor
    SubscriberBoundDescriptor --> ExchangeDescriptor
    SubscriberBoundDescriptor --> BinderDescriptor
    SubscriberBoundDescriptor --> RetryPolicyDescriptor

Properties

Property Description
Queue Queue configuration.
Exchange Exchange configuration.
Binder Binding configuration.
PrefetchCount Maximum number of unacknowledged messages.
RetryPolicy Consumer retry configuration.
EnableChannelEvents Enables RabbitMQ channel events.

Queue Configuration

Queue = new QueueDescriptor
{
    Name = "orders.created"
};

Exchange Configuration

Exchange = new ExchangeDescriptor
{
    Name = "orders",
    Type = ExchangeTypes.Direct
};

Binding Configuration

Binder = new BinderDescriptor
{
    RoutingKey = "orders.created"
};

Prefetch Count

Controls message delivery concurrency.

PrefetchCount = 10;

See:

How To / Consuming / Configure Prefetch Count

Retry Policy

Consumer retries are configured through:

RetryPolicy = new RetryPolicyDescriptor()

The descriptor is documented in:

Retry And Delivery Descriptors

Channel Events

Channel monitoring can be enabled.

EnableChannelEvents = true

Applications can subscribe to:

subscriber.OnChannelEventFired

See:

How To / Consuming / Channel Events

Runtime Behavior

graph LR

    RabbitMQ

    Queue

    Subscriber

    RabbitMQ --> Queue

    Queue --> Subscriber

  • QueueDescriptor
  • ExchangeDescriptor
  • BinderDescriptor
  • RetryPolicyDescriptor