Namespaces & Queues in Azure Service Bus
What Is a Namespace?
A namespace is a container for all messaging components in Azure Service Bus. Think of it as a top-level folder that holds your queues and topics - it provides a logical boundary for your messaging infrastructure and defines the endpoint through which your applications connect. Every Service Bus resource (queues, topics, subscriptions) must belong to a namespace.
What You'll Learn
- Understanding Service Bus namespaces and their role
- Creating a namespace in Azure
- Creating and configuring queues
- Understanding key queue properties like TTL, lock duration, and max delivery
- Best practices for naming and configuring queues
Why Namespaces Matter
Namespaces serve as the foundation for your messaging architecture:
- Isolation - Separate namespaces for different applications or environments
- Connection endpoint - Provides the connection string for your applications
- Management - Group related messaging components together
- Billing - Namespace-level pricing and tier selection
Service Bus Namespace
├── Queues
│ ├── order-queue
│ └── notification-queue
└── Topics
├── orders-topic
└── events-topic
Create a Namespace
Via Portal
- Search "Service Bus namespaces" in Azure Portal
- Click Create
- Configure:
- Name: unique namespace (e.g.,
myapp-servicebus) - Pricing tier: Basic, Standard, or Premium
- Subscription: Your Azure subscription
- Resource Group: Create or select existing
- Location: Choose region
- Name: unique namespace (e.g.,
- Click Create
Via CLI
az servicebus namespace create \
--resource-group myrg \
--name myapp-servicebus \
--location eastus \
--sku Standard
Create a Queue
Via Portal
- Go to your Service Bus namespace
- Click Queues in left menu
- Click + Queue
- Configure:
- Name:
order-queue - Max size: 1 GB, 2 GB, 5 GB, 10 GB, or 20 GB
- Message TTL: Default 1 minute (set to -1 for never)
- Lock duration: Default 30 seconds
- Name:
- Click Create
Via CLI
az servicebus queue create \
--resource-group myrg \
--namespace-name myapp-servicebus \
--name order-queue \
--max-size 1024 \
--default-message-time-to-live P1D \
--lock-duration PT30S
Queue Properties
| Property | Description | Default |
|---|---|---|
| Name | Unique identifier | Required |
| Max Size | Maximum queue size | 1 GB |
| Message TTL | Time before message expires | 1 minute |
| Lock Duration | Time message stays locked | 30 seconds |
| Max Delivery | Times message can be delivered | 10 |
| Dead Letter | Where failed messages go | Disabled |
Queue Properties Explained
Message TTL (Time To Live)
- How long message lives before being deleted
- Can be overridden per message
- Set to
-1for infinite
Lock Duration
- When consumer receives message, it's "locked"
- Consumer has this time to process
- If not completed, message returns to queue
Max Delivery Count
- How many times a message can be delivered
- After exceeded, goes to Dead Letter Queue
Best Practices
- Use descriptive names:
order-processing-queue, notqueue1 - Set appropriate TTL: Don't keep messages forever
- Monitor queue length: Alert if growing too large
- Use dead-letter queue: Capture failed messages
Next Steps
- Learn about Send & Receive Messages
- Understand Tiers: Basic vs Standard
Azure Integration Hub - Beginner Level