ServiceDescriptor¶
ServiceDescriptor is the base descriptor used by RabbitMQ topology objects that have a broker-side name.
ExchangeDescriptor and QueueDescriptor derive from this base model.
Inheritance¶
classDiagram
direction TB
class ServiceDescriptor {
+string Prefix
+string Name
+string FullName
}
class ExchangeDescriptor
class QueueDescriptor
ServiceDescriptor <|-- ExchangeDescriptor
ServiceDescriptor <|-- QueueDescriptor
Purpose¶
ServiceDescriptor defines the naming model used to create physical RabbitMQ objects.
It separates:
| Property | Meaning |
|---|---|
Name |
Logical descriptor name. |
Prefix |
Namespace applied to the logical name. |
FullName |
Physical RabbitMQ object name. |
Name¶
Name is the logical name used in descriptor configuration.
Example:
new ExchangeDescriptor
{
Name = "orders"
};
The value is intentionally short and readable.
Prefix¶
Prefix provides a namespace for the RabbitMQ object.
Default prefixes depend on the concrete descriptor type.
| Descriptor | Default Prefix |
|---|---|
ExchangeDescriptor |
esb/exchange |
QueueDescriptor |
esb/queue |
The prefix can be overridden when a different naming convention is required.
FullName¶
FullName is the physical RabbitMQ object name used by the provider when declaring exchanges or queues.
Conceptually:
FullName = Prefix + "/" + Name
Example:
new QueueDescriptor
{
Name = "orders.created"
};
With the default queue prefix, the physical queue name becomes:
esb/queue/orders.created
Runtime Usage¶
graph LR
Name --> FullName
Prefix --> FullName
FullName --> RabbitMQ
The provider uses FullName when creating RabbitMQ objects.
Application documentation and examples usually use Name, while the Reference explains how FullName is derived.
Best Practices¶
Use meaningful logical names.
Recommended:
orders
orders.created
payments.completed
Avoid generic names.
test
queue1
event2
Customize Prefix only when you need to align RabbitMQ object names with an existing naming standard.